Generated by Cython 0.13.rc1 on Mon Aug 23 19:47:05 2010

Raw output: depsolve.c

 1: #!/usr/bin/python -t
  /* "/home/david/coding/yum/yum/depsolve.pyx":1
 * #!/usr/bin/python -t             # <<<<<<<<<<<<<<
 * # This program is free software; you can redistribute it and/or modify
 * # it under the terms of the GNU General Public License as published by
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___getTs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_89), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___getTsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_90), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_91), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__whatProvides); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_92), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s_25); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_93), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__populateTs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_94), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___processReq); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_95), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s_31); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_96), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s_30); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_97), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___processConflict); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_98), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_GetAttr(__pyx_m, __pyx_n_s__Depsolve); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s___sort_reqs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetAttrString(__pyx_t_2, "__doc__"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_kp_u_99), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2: # This program is free software; you can redistribute it and/or modify
 3: # it under the terms of the GNU General Public License as published by
 4: # the Free Software Foundation; either version 2 of the License, or
 5: # (at your option) any later version.
 6: #
 7: # This program is distributed in the hope that it will be useful,
 8: # but WITHOUT ANY WARRANTY; without even the implied warranty of
 9: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 10: # GNU Library General Public License for more details.
 11: #
 12: # You should have received a copy of the GNU General Public License
 13: # along with this program; if not, write to the Free Software
 14: # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 15: # Copyright 2005 Duke University
 16: 
 17: """
 18: Depedancy resolution module for yum.
 19: """
 20: 
 21: import os.path
  /* "/home/david/coding/yum/yum/depsolve.pyx":21
 * """
 * 
 * import os.path             # <<<<<<<<<<<<<<
 * import types
 * import logging
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_80), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__os, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 22: import types
  /* "/home/david/coding/yum/yum/depsolve.pyx":22
 * 
 * import os.path
 * import types             # <<<<<<<<<<<<<<
 * import logging
 * 
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__types), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__types, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 23: import logging
  /* "/home/david/coding/yum/yum/depsolve.pyx":23
 * import os.path
 * import types
 * import logging             # <<<<<<<<<<<<<<
 * 
 * import rpmUtils.transaction
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__logging), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__logging, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 24: 
 25: import rpmUtils.transaction
  /* "/home/david/coding/yum/yum/depsolve.pyx":25
 * import logging
 * 
 * import rpmUtils.transaction             # <<<<<<<<<<<<<<
 * import rpmUtils.miscutils
 * import rpmUtils.arch
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_81), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpmUtils, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 26: import rpmUtils.miscutils
  /* "/home/david/coding/yum/yum/depsolve.pyx":26
 * 
 * import rpmUtils.transaction
 * import rpmUtils.miscutils             # <<<<<<<<<<<<<<
 * import rpmUtils.arch
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_82), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpmUtils, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 27: import rpmUtils.arch
  /* "/home/david/coding/yum/yum/depsolve.pyx":27
 * import rpmUtils.transaction
 * import rpmUtils.miscutils
 * import rpmUtils.arch             # <<<<<<<<<<<<<<
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 * import misc
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_83), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpmUtils, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 28: from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
  /* "/home/david/coding/yum/yum/depsolve.pyx":28
 * import rpmUtils.miscutils
 * import rpmUtils.arch
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall             # <<<<<<<<<<<<<<
 * import misc
 * from misc import unique, version_tuple_to_string
 */
  __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__archDifference));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__archDifference));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__archDifference));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__isMultiLibArch));
  PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__isMultiLibArch));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__isMultiLibArch));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__getBestArch));
  PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_n_s__getBestArch));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__getBestArch));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__canCoinstall));
  PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_n_s__canCoinstall));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__canCoinstall));
  __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s_83), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__archDifference); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__archDifference, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__isMultiLibArch); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__isMultiLibArch, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getBestArch); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__getBestArch, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__canCoinstall); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__canCoinstall, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 29: import misc
  /* "/home/david/coding/yum/yum/depsolve.pyx":29
 * import rpmUtils.arch
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 * import misc             # <<<<<<<<<<<<<<
 * from misc import unique, version_tuple_to_string
 * import rpm
 */
  __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__misc), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__misc, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 30: from misc import unique, version_tuple_to_string
  /* "/home/david/coding/yum/yum/depsolve.pyx":30
 * from rpmUtils.arch import archDifference, isMultiLibArch, getBestArch, canCoinstall
 * import misc
 * from misc import unique, version_tuple_to_string             # <<<<<<<<<<<<<<
 * import rpm
 * 
 */
  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__unique));
  PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__unique));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__unique));
  __Pyx_INCREF(((PyObject *)__pyx_n_s_32));
  PyList_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_n_s_32));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_32));
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__misc), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__unique); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__unique, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_32); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_32, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 31: import rpm
  /* "/home/david/coding/yum/yum/depsolve.pyx":31
 * import misc
 * from misc import unique, version_tuple_to_string
 * import rpm             # <<<<<<<<<<<<<<
 * 
 * from packageSack import ListPackageSack
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__rpm), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__rpm, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 32: 
 33: from packageSack import ListPackageSack
  /* "/home/david/coding/yum/yum/depsolve.pyx":33
 * import rpm
 * 
 * from packageSack import ListPackageSack             # <<<<<<<<<<<<<<
 * from constants import *
 * import packages
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__ListPackageSack));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__ListPackageSack));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ListPackageSack));
  __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__packageSack), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__ListPackageSack); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ListPackageSack, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 34: from constants import *
  /* "/home/david/coding/yum/yum/depsolve.pyx":34
 * 
 * from packageSack import ListPackageSack
 * from constants import *             # <<<<<<<<<<<<<<
 * import packages
 * import logginglevels
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_INCREF(((PyObject *)__pyx_n_s_84));
  PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s_84));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_84));
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__constants), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
  if (__pyx_import_star(__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 35: import packages
  /* "/home/david/coding/yum/yum/depsolve.pyx":35
 * from packageSack import ListPackageSack
 * from constants import *
 * import packages             # <<<<<<<<<<<<<<
 * import logginglevels
 * import Errors
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__packages), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__packages, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 36: import logginglevels
  /* "/home/david/coding/yum/yum/depsolve.pyx":36
 * from constants import *
 * import packages
 * import logginglevels             # <<<<<<<<<<<<<<
 * import Errors
 * import warnings
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__logginglevels), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__logginglevels, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 37: import Errors
  /* "/home/david/coding/yum/yum/depsolve.pyx":37
 * import packages
 * import logginglevels
 * import Errors             # <<<<<<<<<<<<<<
 * import warnings
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__Errors), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Errors, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 38: import warnings
  /* "/home/david/coding/yum/yum/depsolve.pyx":38
 * import logginglevels
 * import Errors
 * import warnings             # <<<<<<<<<<<<<<
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
 * from operator import itemgetter
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__warnings, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 39: warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
  /* "/home/david/coding/yum/yum/depsolve.pyx":39
 * import Errors
 * import warnings
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)             # <<<<<<<<<<<<<<
 * from operator import itemgetter
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__warnings); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__simplefilter); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__ignore));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__ignore));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ignore));
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 40: from operator import itemgetter
  /* "/home/david/coding/yum/yum/depsolve.pyx":40
 * import warnings
 * warnings.simplefilter("ignore", Errors.YumFutureDeprecationWarning)
 * from operator import itemgetter             # <<<<<<<<<<<<<<
 * 
 * from yum import _
 */
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__itemgetter));
  PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__itemgetter));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__itemgetter));
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__operator), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__itemgetter); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__itemgetter, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 41: 
 42: from yum import _
  /* "/home/david/coding/yum/yum/depsolve.pyx":42
 * from operator import itemgetter
 * 
 * from yum import _             # <<<<<<<<<<<<<<
 * 
 * try:
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_INCREF(((PyObject *)__pyx_n_s___));
  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s___));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s___));
  __pyx_t_3 = __Pyx_Import(((PyObject *)__pyx_n_s__yum), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s___, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 43: 
 44: try:
  /* "/home/david/coding/yum/yum/depsolve.pyx":44
 * from yum import _
 * 
 * try:             # <<<<<<<<<<<<<<
 *     assert max(2, 4) == 4
 * except:
 */
  {
    PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
    __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
    __Pyx_XGOTREF(__pyx_save_exc_type);
    __Pyx_XGOTREF(__pyx_save_exc_value);
    __Pyx_XGOTREF(__pyx_save_exc_tb);
    /*try:*/ {
 45:     assert max(2, 4) == 4
      /* "/home/david/coding/yum/yum/depsolve.pyx":45
 * 
 * try:
 *     assert max(2, 4) == 4             # <<<<<<<<<<<<<<
 * except:
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 */
      #ifndef PYREX_WITHOUT_ASSERTIONS
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__max); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_int_2);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
      __Pyx_GIVEREF(__pyx_int_2);
      __Pyx_INCREF(__pyx_int_4);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4);
      __Pyx_GIVEREF(__pyx_int_4);
      __pyx_t_2 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_4, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) {
        PyErr_SetNone(PyExc_AssertionError);
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L2_error;}
      }
      #endif
    }
    __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
    __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
    __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
    goto __pyx_L9_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 46: except:
    /* "/home/david/coding/yum/yum/depsolve.pyx":46
 * try:
 *     assert max(2, 4) == 4
 * except:             # <<<<<<<<<<<<<<
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 *         def min(x, *args):
 */
    /*except:*/ {
      __Pyx_AddTraceback("yum.depsolve");
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L4_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_3);
 47:     # Python-2.4.x doesn't have min/max ... *sigh*
 48:         def min(x, *args):
/* "/home/david/coding/yum/yum/depsolve.pyx":48
 * except:
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 *         def min(x, *args):             # <<<<<<<<<<<<<<
 *             for y in args:
 *                 if x > y: x = y
 */

static PyObject *__pyx_pf_3yum_8depsolve_min(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pf_3yum_8depsolve_min(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_y;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,0};
  __Pyx_RefNannySetupContext("min");
  __pyx_self = __pyx_self;
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); __Pyx_GOTREF(__pyx_v_args);
    if (unlikely(!__pyx_v_args)) return NULL;
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[1] = {0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      default:
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
    }
    if (unlikely(kw_args > 0)) {
      const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1;
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "min") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_x = values[0];
  } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("min", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_AddTraceback("yum.depsolve.min");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_x);
  __pyx_v_y = Py_None; __Pyx_INCREF(Py_None);
 49:             for y in args:
  /* "/home/david/coding/yum/yum/depsolve.pyx":49
 *     # Python-2.4.x doesn't have min/max ... *sigh*
 *         def min(x, *args):
 *             for y in args:             # <<<<<<<<<<<<<<
 *                 if x > y: x = y
 *             return x
 */
  if (likely(((PyObject *)__pyx_v_args) != Py_None)) {
    __pyx_t_1 = 0; __pyx_t_2 = ((PyObject *)__pyx_v_args); __Pyx_INCREF(__pyx_t_2);
  } else {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  for (;;) {
    if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++;
    __Pyx_DECREF(__pyx_v_y);
    __pyx_v_y = __pyx_t_3;
    __pyx_t_3 = 0;
 50:                 if x > y: x = y
    /* "/home/david/coding/yum/yum/depsolve.pyx":50
 *         def min(x, *args):
 *             for y in args:
 *                 if x > y: x = y             # <<<<<<<<<<<<<<
 *             return x
 *         def max(x, *args):
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_GT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
      __Pyx_INCREF(__pyx_v_y);
      __Pyx_DECREF(__pyx_v_x);
      __pyx_v_x = __pyx_v_y;
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 51:             return x
  /* "/home/david/coding/yum/yum/depsolve.pyx":51
 *             for y in args:
 *                 if x > y: x = y
 *             return x             # <<<<<<<<<<<<<<
 *         def max(x, *args):
 *             for y in args:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_x);
  __pyx_r = __pyx_v_x;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.min");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_DECREF(__pyx_v_y);
  __Pyx_DECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 52:         def max(x, *args):
/* "/home/david/coding/yum/yum/depsolve.pyx":52
 *                 if x > y: x = y
 *             return x
 *         def max(x, *args):             # <<<<<<<<<<<<<<
 *             for y in args:
 *                 if x < y: x = y
 */

static PyObject *__pyx_pf_3yum_8depsolve_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pf_3yum_8depsolve_max(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_y;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,0};
  __Pyx_RefNannySetupContext("max");
  __pyx_self = __pyx_self;
  if (PyTuple_GET_SIZE(__pyx_args) > 1) {
    __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); __Pyx_GOTREF(__pyx_v_args);
    if (unlikely(!__pyx_v_args)) return NULL;
  } else {
    __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple);
  }
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[1] = {0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      default:
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
    }
    if (unlikely(kw_args > 0)) {
      const Py_ssize_t used_pos_args = (PyTuple_GET_SIZE(__pyx_args) < 1) ? PyTuple_GET_SIZE(__pyx_args) : 1;
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "max") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_x = values[0];
  } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("max", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_AddTraceback("yum.depsolve.max");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_x);
  __pyx_v_y = Py_None; __Pyx_INCREF(Py_None);

      /* "/home/david/coding/yum/yum/depsolve.pyx":52
 *                 if x > y: x = y
 *             return x
 *         def max(x, *args):             # <<<<<<<<<<<<<<
 *             for y in args:
 *                 if x < y: x = y
 */
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L3_exception_handled;
    }
    __pyx_L4_except_error:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    __pyx_L9_try_end:;
  }
 53:             for y in args:
  /* "/home/david/coding/yum/yum/depsolve.pyx":53
 *             return x
 *         def max(x, *args):
 *             for y in args:             # <<<<<<<<<<<<<<
 *                 if x < y: x = y
 *             return x
 */
  if (likely(((PyObject *)__pyx_v_args) != Py_None)) {
    __pyx_t_1 = 0; __pyx_t_2 = ((PyObject *)__pyx_v_args); __Pyx_INCREF(__pyx_t_2);
  } else {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  for (;;) {
    if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_1); __Pyx_INCREF(__pyx_t_3); __pyx_t_1++;
    __Pyx_DECREF(__pyx_v_y);
    __pyx_v_y = __pyx_t_3;
    __pyx_t_3 = 0;
 54:                 if x < y: x = y
    /* "/home/david/coding/yum/yum/depsolve.pyx":54
 *         def max(x, *args):
 *             for y in args:
 *                 if x < y: x = y             # <<<<<<<<<<<<<<
 *             return x
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_x, __pyx_v_y, Py_LT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
      __Pyx_INCREF(__pyx_v_y);
      __Pyx_DECREF(__pyx_v_x);
      __pyx_v_x = __pyx_v_y;
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 55:             return x
  /* "/home/david/coding/yum/yum/depsolve.pyx":55
 *             for y in args:
 *                 if x < y: x = y
 *             return x             # <<<<<<<<<<<<<<
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_x);
  __pyx_r = __pyx_v_x;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.max");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_args);
  __Pyx_DECREF(__pyx_v_y);
  __Pyx_DECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 56: flags = {"GT": rpm.RPMSENSE_GREATER,
  /* "/home/david/coding/yum/yum/depsolve.pyx":56
 *                 if x < y: x = y
 *             return x
 * flags = {"GT": rpm.RPMSENSE_GREATER,             # <<<<<<<<<<<<<<
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 *          "LT": rpm.RPMSENSE_LESS,
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__RPMSENSE_GREATER); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__GT), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 57:          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
  /* "/home/david/coding/yum/yum/depsolve.pyx":57
 *             return x
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,             # <<<<<<<<<<<<<<
 *          "LT": rpm.RPMSENSE_LESS,
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMSENSE_EQUAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMSENSE_GREATER); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Or(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__GE), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 58:          "LT": rpm.RPMSENSE_LESS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":58
 * flags = {"GT": rpm.RPMSENSE_GREATER,
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 *          "LT": rpm.RPMSENSE_LESS,             # <<<<<<<<<<<<<<
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 *          "EQ": rpm.RPMSENSE_EQUAL,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMSENSE_LESS); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__LT), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 59:          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
  /* "/home/david/coding/yum/yum/depsolve.pyx":59
 *          "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
 *          "LT": rpm.RPMSENSE_LESS,
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,             # <<<<<<<<<<<<<<
 *          "EQ": rpm.RPMSENSE_EQUAL,
 *          None: 0 }
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__RPMSENSE_LESS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__RPMSENSE_EQUAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Or(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__LE), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 60:          "EQ": rpm.RPMSENSE_EQUAL,
  /* "/home/david/coding/yum/yum/depsolve.pyx":60
 *          "LT": rpm.RPMSENSE_LESS,
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 *          "EQ": rpm.RPMSENSE_EQUAL,             # <<<<<<<<<<<<<<
 *          None: 0 }
 * 
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__RPMSENSE_EQUAL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__EQ), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 61:          None: 0 }
  /* "/home/david/coding/yum/yum/depsolve.pyx":61
 *          "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
 *          "EQ": rpm.RPMSENSE_EQUAL,
 *          None: 0 }             # <<<<<<<<<<<<<<
 * 
 * class Depsolve(object):
 */
  if (PyDict_SetItem(__pyx_t_3, Py_None, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__flags, ((PyObject *)__pyx_t_3)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 62: 
 63: class Depsolve(object):
  /* "/home/david/coding/yum/yum/depsolve.pyx":63
 *          None: 0 }
 * 
 * class Depsolve(object):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  if (PyDict_SetItemString(((PyObject *)__pyx_t_3), "__doc__", ((PyObject *)__pyx_kp_s_85)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_CreateClass(__pyx_t_2, ((PyObject *)__pyx_t_3), __pyx_n_s__Depsolve, "yum.depsolve"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 64: 
 65:     """
 66:     Dependency resolving class.
 67:     """
 68: 
 69:     def __init__(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":69
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         packages.base = self
 *         self._ts = None
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve___init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve___init__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve___init__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":69
 *     """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         packages.base = self
 *         self._ts = None
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve___init__, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 70:         packages.base = self
  /* "/home/david/coding/yum/yum/depsolve.pyx":70
 * 
 *     def __init__(self):
 *         packages.base = self             # <<<<<<<<<<<<<<
 *         self._ts = None
 *         self._tsInfo = None
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__packages); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_t_1, __pyx_n_s__base, __pyx_v_self) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 71:         self._ts = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":71
 *     def __init__(self):
 *         packages.base = self
 *         self._ts = None             # <<<<<<<<<<<<<<
 *         self._tsInfo = None
 *         self.dsCallback = None
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___ts, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 72:         self._tsInfo = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":72
 *         packages.base = self
 *         self._ts = None
 *         self._tsInfo = None             # <<<<<<<<<<<<<<
 *         self.dsCallback = None
 *         self.logger = logging.getLogger("yum.Depsolve")
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 73:         self.dsCallback = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":73
 *         self._ts = None
 *         self._tsInfo = None
 *         self.dsCallback = None             # <<<<<<<<<<<<<<
 *         self.logger = logging.getLogger("yum.Depsolve")
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__dsCallback, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 74:         self.logger = logging.getLogger("yum.Depsolve")
  /* "/home/david/coding/yum/yum/depsolve.pyx":74
 *         self._tsInfo = None
 *         self.dsCallback = None
 *         self.logger = logging.getLogger("yum.Depsolve")             # <<<<<<<<<<<<<<
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logging); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1));
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__logger, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 75:         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
  /* "/home/david/coding/yum/yum/depsolve.pyx":75
 *         self.dsCallback = None
 *         self.logger = logging.getLogger("yum.Depsolve")
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")             # <<<<<<<<<<<<<<
 * 
 *         self.path = []
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logging); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getLogger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_2));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_2));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2));
  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__verbose_logger, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 76: 
 77:         self.path = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":77
 *         self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
 * 
 *         self.path = []             # <<<<<<<<<<<<<<
 *         self.loops = []
 * 
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__path, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 78:         self.loops = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":78
 * 
 *         self.path = []
 *         self.loops = []             # <<<<<<<<<<<<<<
 * 
 *         self.installedFileRequires = None
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__loops, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 79: 
 80:         self.installedFileRequires = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":80
 *         self.loops = []
 * 
 *         self.installedFileRequires = None             # <<<<<<<<<<<<<<
 *         self.installedUnresolvedFileRequires = None
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s_3, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 81:         self.installedUnresolvedFileRequires = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":81
 * 
 *         self.installedFileRequires = None
 *         self.installedUnresolvedFileRequires = None             # <<<<<<<<<<<<<<
 * 
 *     def doTsSetup(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s_4, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.__init__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 82: 
 83:     def doTsSetup(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":83
 *         self.installedUnresolvedFileRequires = None
 * 
 *     def doTsSetup(self):             # <<<<<<<<<<<<<<
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_doTsSetup(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_doTsSetup = {__Pyx_NAMESTR("doTsSetup"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_doTsSetup, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_doTsSetup(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("doTsSetup");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":83
 *         self.installedUnresolvedFileRequires = None
 * 
 *     def doTsSetup(self):             # <<<<<<<<<<<<<<
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_doTsSetup, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__doTsSetup, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 84:         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
  /* "/home/david/coding/yum/yum/depsolve.pyx":84
 * 
 *     def doTsSetup(self):
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),             # <<<<<<<<<<<<<<
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 *         return self._getTs()
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__warnings); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_5));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_5));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_5));
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "/home/david/coding/yum/yum/depsolve.pyx":84
 * 
 *     def doTsSetup(self):
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),             # <<<<<<<<<<<<<<
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 *         return self._getTs()
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__stacklevel), __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 85:                 Errors.YumFutureDeprecationWarning, stacklevel=2)
  /* "/home/david/coding/yum/yum/depsolve.pyx":85
 *     def doTsSetup(self):
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)             # <<<<<<<<<<<<<<
 *         return self._getTs()
 * 
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_4 = 0;
  __pyx_t_1 = 0;
 86:         return self._getTs()
  /* "/home/david/coding/yum/yum/depsolve.pyx":86
 *         warnings.warn(_('doTsSetup() will go away in a future version of Yum.\n'),
 *                 Errors.YumFutureDeprecationWarning, stacklevel=2)
 *         return self._getTs()             # <<<<<<<<<<<<<<
 * 
 *     def _getTs(self, remove_only=False):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___getTs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.doTsSetup");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 87: 
 88:     def _getTs(self, remove_only=False):
/* "/home/david/coding/yum/yum/depsolve.pyx":88
 *         return self._getTs()
 * 
 *     def _getTs(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """setup all the transaction set storage items we'll need
 *            This can't happen in __init__ b/c we don't know our installroot
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__getTs[] = "setup all the transaction set storage items we'll need\n           This can't happen in __init__ b/c we don't know our installroot\n           yet";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__getTs = {__Pyx_NAMESTR("_getTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__getTs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__getTs)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_remove_only = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__remove_only,0};
  __Pyx_RefNannySetupContext("_getTs");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    values[1] = __pyx_k_7;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remove_only);
        if (value) { values[1] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_getTs") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_remove_only = values[1];
  } else {
    __pyx_v_remove_only = __pyx_k_7;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: __pyx_v_remove_only = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_getTs", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTs");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":88
 *         return self._getTs()
 * 
 *     def _getTs(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """setup all the transaction set storage items we'll need
 *            This can't happen in __init__ b/c we don't know our installroot
 */
  __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_k_7 = __pyx_t_2;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__getTs, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___getTs, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 89:         """setup all the transaction set storage items we'll need
 90:            This can't happen in __init__ b/c we don't know our installroot
 91:            yet"""
 92: 
 93:         if self._tsInfo != None and self._ts != None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":93
 *            yet"""
 * 
 *         if self._tsInfo != None and self._ts != None:             # <<<<<<<<<<<<<<
 *             if not remove_only and self._tsInfo.pkgSack is None:
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, Py_None, Py_NE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, Py_None, Py_NE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_4;
  } else {
    __pyx_t_5 = __pyx_t_3;
  }
  if (__pyx_t_5) {
 94:             if not remove_only and self._tsInfo.pkgSack is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":94
 * 
 *         if self._tsInfo != None and self._ts != None:
 *             if not remove_only and self._tsInfo.pkgSack is None:             # <<<<<<<<<<<<<<
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
 *             return
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_remove_only); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = (!__pyx_t_5);
    if (__pyx_t_3) {
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = (__pyx_t_2 == Py_None);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __pyx_t_5;
    } else {
      __pyx_t_4 = __pyx_t_3;
    }
    if (__pyx_t_4) {
 95:                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
      /* "/home/david/coding/yum/yum/depsolve.pyx":95
 *         if self._tsInfo != None and self._ts != None:
 *             if not remove_only and self._tsInfo.pkgSack is None:
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)             # <<<<<<<<<<<<<<
 *             return
 * 
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__setDatabases); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_2 = 0;
      __pyx_t_6 = 0;
      __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;
 96:             return
    /* "/home/david/coding/yum/yum/depsolve.pyx":96
 *             if not remove_only and self._tsInfo.pkgSack is None:
 *                 self._tsInfo.setDatabases(self.rpmdb, self.pkgSack)
 *             return             # <<<<<<<<<<<<<<
 * 
 *         if not self.conf.installroot:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 97: 
 98:         if not self.conf.installroot:
  /* "/home/david/coding/yum/yum/depsolve.pyx":98
 *             return
 * 
 *         if not self.conf.installroot:             # <<<<<<<<<<<<<<
 *             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')
 * 
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__installroot); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_3 = (!__pyx_t_4);
  if (__pyx_t_3) {
 99:             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')
    /* "/home/david/coding/yum/yum/depsolve.pyx":99
 * 
 *         if not self.conf.installroot:
 *             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')             # <<<<<<<<<<<<<<
 * 
 *         self._getTsInfo(remove_only)
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__YumBaseError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_8));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_8));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_8));
    __pyx_t_2 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, __pyx_t_2, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L8;
  }
  __pyx_L8:;
 100: 
 101:         self._getTsInfo(remove_only)
  /* "/home/david/coding/yum/yum/depsolve.pyx":101
 *             raise Errors.YumBaseError, _('Setting up TransactionSets before config class is up')
 * 
 *         self._getTsInfo(remove_only)             # <<<<<<<<<<<<<<
 *         self.initActionTs()
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___getTsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_remove_only);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_remove_only);
  __Pyx_GIVEREF(__pyx_v_remove_only);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 102:         self.initActionTs()
  /* "/home/david/coding/yum/yum/depsolve.pyx":102
 * 
 *         self._getTsInfo(remove_only)
 *         self.initActionTs()             # <<<<<<<<<<<<<<
 * 
 *     def _getTsInfo(self, remove_only=False):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 103: 
 104:     def _getTsInfo(self, remove_only=False):
/* "/home/david/coding/yum/yum/depsolve.pyx":104
 *         self.initActionTs()
 * 
 *     def _getTsInfo(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """ remove_only param. says if we are going to do _only_ remove(s) in
 *             the transaction. If so we don't need to setup the remote repos. """
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__getTsInfo[] = " remove_only param. says if we are going to do _only_ remove(s) in\n            the transaction. If so we don't need to setup the remote repos. ";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__getTsInfo = {__Pyx_NAMESTR("_getTsInfo"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__getTsInfo, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__getTsInfo)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_remove_only = 0;
  PyObject *__pyx_v_pkgSack;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__remove_only,0};
  __Pyx_RefNannySetupContext("_getTsInfo");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    values[1] = __pyx_k_9;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__remove_only);
        if (value) { values[1] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_getTsInfo") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_remove_only = values[1];
  } else {
    __pyx_v_remove_only = __pyx_k_9;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: __pyx_v_remove_only = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_getTsInfo", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTsInfo");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_pkgSack = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":104
 *         self.initActionTs()
 * 
 *     def _getTsInfo(self, remove_only=False):             # <<<<<<<<<<<<<<
 *         """ remove_only param. says if we are going to do _only_ remove(s) in
 *             the transaction. If so we don't need to setup the remote repos. """
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_9 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__getTsInfo, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___getTsInfo, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 105:         """ remove_only param. says if we are going to do _only_ remove(s) in
 106:             the transaction. If so we don't need to setup the remote repos. """
 107:         if self._tsInfo is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":107
 *         """ remove_only param. says if we are going to do _only_ remove(s) in
 *             the transaction. If so we don't need to setup the remote repos. """
 *         if self._tsInfo is None:             # <<<<<<<<<<<<<<
 *             self._tsInfo = self._transactionDataFactory()
 *             if remove_only:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
 108:             self._tsInfo = self._transactionDataFactory()
    /* "/home/david/coding/yum/yum/depsolve.pyx":108
 *             the transaction. If so we don't need to setup the remote repos. """
 *         if self._tsInfo is None:
 *             self._tsInfo = self._transactionDataFactory()             # <<<<<<<<<<<<<<
 *             if remove_only:
 *                 pkgSack = None
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_10); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 109:             if remove_only:
    /* "/home/david/coding/yum/yum/depsolve.pyx":109
 *         if self._tsInfo is None:
 *             self._tsInfo = self._transactionDataFactory()
 *             if remove_only:             # <<<<<<<<<<<<<<
 *                 pkgSack = None
 *             else:
 */
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_remove_only); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_2) {
 110:                 pkgSack = None
      /* "/home/david/coding/yum/yum/depsolve.pyx":110
 *             self._tsInfo = self._transactionDataFactory()
 *             if remove_only:
 *                 pkgSack = None             # <<<<<<<<<<<<<<
 *             else:
 *                 pkgSack = self.pkgSack
 */
      __Pyx_INCREF(Py_None);
      __Pyx_DECREF(__pyx_v_pkgSack);
      __pyx_v_pkgSack = Py_None;
      goto __pyx_L7;
    }
    /*else*/ {
 111:             else:
 112:                 pkgSack = self.pkgSack
      /* "/home/david/coding/yum/yum/depsolve.pyx":112
 *                 pkgSack = None
 *             else:
 *                 pkgSack = self.pkgSack             # <<<<<<<<<<<<<<
 *             self._tsInfo.setDatabases(self.rpmdb, pkgSack)
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_v_pkgSack);
      __pyx_v_pkgSack = __pyx_t_3;
      __pyx_t_3 = 0;
    }
    __pyx_L7:;
 113:             self._tsInfo.setDatabases(self.rpmdb, pkgSack)
    /* "/home/david/coding/yum/yum/depsolve.pyx":113
 *             else:
 *                 pkgSack = self.pkgSack
 *             self._tsInfo.setDatabases(self.rpmdb, pkgSack)             # <<<<<<<<<<<<<<
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
 *             # this REALLY sucks, sadly (needed for group conditionals)
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__setDatabases); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pkgSack);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_pkgSack);
    __Pyx_GIVEREF(__pyx_v_pkgSack);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 114:             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
    /* "/home/david/coding/yum/yum/depsolve.pyx":114
 *                 pkgSack = self.pkgSack
 *             self._tsInfo.setDatabases(self.rpmdb, pkgSack)
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks             # <<<<<<<<<<<<<<
 *             # this REALLY sucks, sadly (needed for group conditionals)
 *             self._tsInfo.install_method = self.install
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__installonlypkgs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyObject_SetAttr(__pyx_t_3, __pyx_n_s__installonlypkgs, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 115:             # this REALLY sucks, sadly (needed for group conditionals)
 116:             self._tsInfo.install_method = self.install
    /* "/home/david/coding/yum/yum/depsolve.pyx":116
 *             self._tsInfo.installonlypkgs = self.conf.installonlypkgs # this kinda sucks
 *             # this REALLY sucks, sadly (needed for group conditionals)
 *             self._tsInfo.install_method = self.install             # <<<<<<<<<<<<<<
 *             self._tsInfo.update_method = self.update
 *             self._tsInfo.remove_method = self.remove
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__install); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyObject_SetAttr(__pyx_t_4, __pyx_n_s__install_method, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 117:             self._tsInfo.update_method = self.update
    /* "/home/david/coding/yum/yum/depsolve.pyx":117
 *             # this REALLY sucks, sadly (needed for group conditionals)
 *             self._tsInfo.install_method = self.install
 *             self._tsInfo.update_method = self.update             # <<<<<<<<<<<<<<
 *             self._tsInfo.remove_method = self.remove
 *         return self._tsInfo
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyObject_SetAttr(__pyx_t_3, __pyx_n_s__update_method, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 118:             self._tsInfo.remove_method = self.remove
    /* "/home/david/coding/yum/yum/depsolve.pyx":118
 *             self._tsInfo.install_method = self.install
 *             self._tsInfo.update_method = self.update
 *             self._tsInfo.remove_method = self.remove             # <<<<<<<<<<<<<<
 *         return self._tsInfo
 * 
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__remove); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyObject_SetAttr(__pyx_t_4, __pyx_n_s__remove_method, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 119:         return self._tsInfo
  /* "/home/david/coding/yum/yum/depsolve.pyx":119
 *             self._tsInfo.update_method = self.update
 *             self._tsInfo.remove_method = self.remove
 *         return self._tsInfo             # <<<<<<<<<<<<<<
 * 
 *     def _setTsInfo(self, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getTsInfo");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_pkgSack);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 120: 
 121:     def _setTsInfo(self, value):
/* "/home/david/coding/yum/yum/depsolve.pyx":121
 *         return self._tsInfo
 * 
 *     def _setTsInfo(self, value):             # <<<<<<<<<<<<<<
 *         self._tsInfo = value
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__setTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__setTsInfo = {__Pyx_NAMESTR("_setTsInfo"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__setTsInfo, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__setTsInfo(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__value,0};
  __Pyx_RefNannySetupContext("_setTsInfo");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_setTsInfo", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_setTsInfo") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_value = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_value = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_setTsInfo", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._setTsInfo");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":121
 *         return self._tsInfo
 * 
 *     def _setTsInfo(self, value):             # <<<<<<<<<<<<<<
 *         self._tsInfo = value
 * 
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__setTsInfo, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___setTsInfo, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 122:         self._tsInfo = value
  /* "/home/david/coding/yum/yum/depsolve.pyx":122
 * 
 *     def _setTsInfo(self, value):
 *         self._tsInfo = value             # <<<<<<<<<<<<<<
 * 
 *     def _delTsInfo(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._setTsInfo");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 123: 
 124:     def _delTsInfo(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":124
 *         self._tsInfo = value
 * 
 *     def _delTsInfo(self):             # <<<<<<<<<<<<<<
 *         self._tsInfo = None
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__delTsInfo(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__delTsInfo = {__Pyx_NAMESTR("_delTsInfo"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__delTsInfo, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__delTsInfo(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_delTsInfo");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":124
 *         self._tsInfo = value
 * 
 *     def _delTsInfo(self):             # <<<<<<<<<<<<<<
 *         self._tsInfo = None
 * 
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__delTsInfo, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___delTsInfo, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 125:         self._tsInfo = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":125
 * 
 *     def _delTsInfo(self):
 *         self._tsInfo = None             # <<<<<<<<<<<<<<
 * 
 *     def _getActionTs(self):
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___tsInfo, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._delTsInfo");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 126: 
 127:     def _getActionTs(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":127
 *         self._tsInfo = None
 * 
 *     def _getActionTs(self):             # <<<<<<<<<<<<<<
 *         if not self._ts:
 *             self.initActionTs()
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__getActionTs = {__Pyx_NAMESTR("_getActionTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__getActionTs, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__getActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_getActionTs");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":127
 *         self._tsInfo = None
 * 
 *     def _getActionTs(self):             # <<<<<<<<<<<<<<
 *         if not self._ts:
 *             self.initActionTs()
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__getActionTs, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___getActionTs, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 128:         if not self._ts:
  /* "/home/david/coding/yum/yum/depsolve.pyx":128
 * 
 *     def _getActionTs(self):
 *         if not self._ts:             # <<<<<<<<<<<<<<
 *             self.initActionTs()
 *         return self._ts
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
 129:             self.initActionTs()
    /* "/home/david/coding/yum/yum/depsolve.pyx":129
 *     def _getActionTs(self):
 *         if not self._ts:
 *             self.initActionTs()             # <<<<<<<<<<<<<<
 *         return self._ts
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;
 130:         return self._ts
  /* "/home/david/coding/yum/yum/depsolve.pyx":130
 *         if not self._ts:
 *             self.initActionTs()
 *         return self._ts             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._getActionTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 131: 
 132: 
 133:     def initActionTs(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":133
 * 
 * 
 *     def initActionTs(self):             # <<<<<<<<<<<<<<
 *         """sets up the ts we'll use for all the work"""
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_initActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_initActionTs[] = "sets up the ts we'll use for all the work";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_initActionTs = {__Pyx_NAMESTR("initActionTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_initActionTs, METH_O, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_initActionTs)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_initActionTs(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ts_flags_to_rpm;
  PyObject *__pyx_v_flag;
  PyObject *__pyx_v_probfilter;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("initActionTs");
  __pyx_self = __pyx_self;
  __pyx_v_ts_flags_to_rpm = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_flag = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_probfilter = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":133
 * 
 * 
 *     def initActionTs(self):             # <<<<<<<<<<<<<<
 *         """sets up the ts we'll use for all the work"""
 * 
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_initActionTs, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__initActionTs, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 134:         """sets up the ts we'll use for all the work"""
 135: 
 136:         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
  /* "/home/david/coding/yum/yum/depsolve.pyx":136
 *         """sets up the ts we'll use for all the work"""
 * 
 *         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)             # <<<<<<<<<<<<<<
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__transaction); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__TransactionWrapper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__installroot); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___ts, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 137:         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":137
 * 
 *         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,             # <<<<<<<<<<<<<<
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s_11); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__noscripts), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 138:                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":138
 *         self._ts = rpmUtils.transaction.TransactionWrapper(self.conf.installroot)
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,             # <<<<<<<<<<<<<<
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_12); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__notriggers), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 139:                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
  /* "/home/david/coding/yum/yum/depsolve.pyx":139
 *         ts_flags_to_rpm = { 'noscripts': rpm.RPMTRANS_FLAG_NOSCRIPTS,
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,             # <<<<<<<<<<<<<<
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s_13); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__nodocs), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 140:                             'test': rpm.RPMTRANS_FLAG_TEST,
  /* "/home/david/coding/yum/yum/depsolve.pyx":140
 *                             'notriggers': rpm.RPMTRANS_FLAG_NOTRIGGERS,
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 *                             'test': rpm.RPMTRANS_FLAG_TEST,             # <<<<<<<<<<<<<<
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__RPMTRANS_FLAG_TEST); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__test), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 141:                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
  /* "/home/david/coding/yum/yum/depsolve.pyx":141
 *                             'nodocs': rpm.RPMTRANS_FLAG_NODOCS,
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,             # <<<<<<<<<<<<<<
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
 * 
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s_14); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__justdb), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 142:                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
  /* "/home/david/coding/yum/yum/depsolve.pyx":142
 *                             'test': rpm.RPMTRANS_FLAG_TEST,
 *                             'justdb': rpm.RPMTRANS_FLAG_JUSTDB,
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}             # <<<<<<<<<<<<<<
 * 
 *         self._ts.setFlags(0) # reset everything.
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_15); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__repackage), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_v_ts_flags_to_rpm));
  __pyx_v_ts_flags_to_rpm = __pyx_t_3;
  __pyx_t_3 = 0;
 143: 
 144:         self._ts.setFlags(0) # reset everything.
  /* "/home/david/coding/yum/yum/depsolve.pyx":144
 *                             'repackage': rpm.RPMTRANS_FLAG_REPACKAGE}
 * 
 *         self._ts.setFlags(0) # reset everything.             # <<<<<<<<<<<<<<
 * 
 *         for flag in self.conf.tsflags:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__setFlags); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 145: 
 146:         for flag in self.conf.tsflags:
  /* "/home/david/coding/yum/yum/depsolve.pyx":146
 *         self._ts.setFlags(0) # reset everything.
 * 
 *         for flag in self.conf.tsflags:             # <<<<<<<<<<<<<<
 *             if ts_flags_to_rpm.has_key(flag):
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__tsflags); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = 0; __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_flag);
    __pyx_v_flag = __pyx_t_3;
    __pyx_t_3 = 0;
 147:             if ts_flags_to_rpm.has_key(flag):
    /* "/home/david/coding/yum/yum/depsolve.pyx":147
 * 
 *         for flag in self.conf.tsflags:
 *             if ts_flags_to_rpm.has_key(flag):             # <<<<<<<<<<<<<<
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
 *             else:
 */
    __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_ts_flags_to_rpm), __pyx_n_s__has_key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_flag);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_flag);
    __Pyx_GIVEREF(__pyx_v_flag);
    __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_6) {
 148:                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
      /* "/home/david/coding/yum/yum/depsolve.pyx":148
 *         for flag in self.conf.tsflags:
 *             if ts_flags_to_rpm.has_key(flag):
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])             # <<<<<<<<<<<<<<
 *             else:
 *                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__addTsFlag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_ts_flags_to_rpm), __pyx_v_flag); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      goto __pyx_L7;
    }
    /*else*/ {
 149:             else:
 150:                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)
      /* "/home/david/coding/yum/yum/depsolve.pyx":150
 *                 self._ts.addTsFlag(ts_flags_to_rpm[flag])
 *             else:
 *                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)             # <<<<<<<<<<<<<<
 * 
 *         probfilter = 0
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__critical); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_16));
      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_16));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_16));
      __pyx_t_7 = PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_flag);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_flag);
      __Pyx_GIVEREF(__pyx_v_flag);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_L7:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 151: 
 152:         probfilter = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":152
 *                 self.logger.critical(_('Invalid tsflag in config file: %s'), flag)
 * 
 *         probfilter = 0             # <<<<<<<<<<<<<<
 *         for flag in self.tsInfo.probFilterFlags:
 *             probfilter |= flag
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_probfilter);
  __pyx_v_probfilter = __pyx_int_0;
 153:         for flag in self.tsInfo.probFilterFlags:
  /* "/home/david/coding/yum/yum/depsolve.pyx":153
 * 
 *         probfilter = 0
 *         for flag in self.tsInfo.probFilterFlags:             # <<<<<<<<<<<<<<
 *             probfilter |= flag
 *         self._ts.setProbFilter(probfilter)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__probFilterFlags); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_7) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_4 = 0; __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++;
    } else {
      __pyx_t_7 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_7) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_DECREF(__pyx_v_flag);
    __pyx_v_flag = __pyx_t_7;
    __pyx_t_7 = 0;
 154:             probfilter |= flag
    /* "/home/david/coding/yum/yum/depsolve.pyx":154
 *         probfilter = 0
 *         for flag in self.tsInfo.probFilterFlags:
 *             probfilter |= flag             # <<<<<<<<<<<<<<
 *         self._ts.setProbFilter(probfilter)
 * 
 */
    __pyx_t_7 = PyNumber_InPlaceOr(__pyx_v_probfilter, __pyx_v_flag); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_v_probfilter);
    __pyx_v_probfilter = __pyx_t_7;
    __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 155:         self._ts.setProbFilter(probfilter)
  /* "/home/david/coding/yum/yum/depsolve.pyx":155
 *         for flag in self.tsInfo.probFilterFlags:
 *             probfilter |= flag
 *         self._ts.setProbFilter(probfilter)             # <<<<<<<<<<<<<<
 * 
 *     def whatProvides(self, name, flags, version):
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__setProbFilter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_probfilter);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_probfilter);
  __Pyx_GIVEREF(__pyx_v_probfilter);
  __pyx_t_2 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.initActionTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_ts_flags_to_rpm);
  __Pyx_DECREF(__pyx_v_flag);
  __Pyx_DECREF(__pyx_v_probfilter);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 156: 
 157:     def whatProvides(self, name, flags, version):
/* "/home/david/coding/yum/yum/depsolve.pyx":157
 *         self._ts.setProbFilter(probfilter)
 * 
 *     def whatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         """searches the packageSacks for what provides the arguments
 *            returns a ListPackageSack of providing packages, possibly empty"""
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_whatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_whatProvides[] = "searches the packageSacks for what provides the arguments\n           returns a ListPackageSack of providing packages, possibly empty";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_whatProvides = {__Pyx_NAMESTR("whatProvides"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_whatProvides, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_whatProvides)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_whatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_flags = 0;
  PyObject *__pyx_v_version = 0;
  PyObject *__pyx_v_pkgs;
  PyObject *__pyx_v_r_e;
  PyObject *__pyx_v_r_v;
  PyObject *__pyx_v_r_r;
  PyObject *__pyx_v_defSack;
  PyObject *__pyx_v_po;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__flags,&__pyx_n_s__version,0};
  __Pyx_RefNannySetupContext("whatProvides");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flags);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__version);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "whatProvides") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_flags = values[2];
    __pyx_v_version = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_flags = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_version = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("whatProvides", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.whatProvides");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_flags);
  __pyx_v_pkgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_defSack = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":157
 *         self._ts.setProbFilter(probfilter)
 * 
 *     def whatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         """searches the packageSacks for what provides the arguments
 *            returns a ListPackageSack of providing packages, possibly empty"""
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_whatProvides, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__whatProvides, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 158:         """searches the packageSacks for what provides the arguments
 159:            returns a ListPackageSack of providing packages, possibly empty"""
 160: 
 161:         self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'),
  /* "/home/david/coding/yum/yum/depsolve.pyx":161
 *            returns a ListPackageSack of providing packages, possibly empty"""
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'),             # <<<<<<<<<<<<<<
 *             name)
 *         # we need to check the name - if it doesn't match:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_17));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_17));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_17));
  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 162:             name)
  /* "/home/david/coding/yum/yum/depsolve.pyx":162
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('Searching pkgSack for dep: %s'),
 *             name)             # <<<<<<<<<<<<<<
 *         # we need to check the name - if it doesn't match:
 *         # /etc/[inserted by cython to avoid comment start]* bin/[inserted by cython to avoid comment start]* or /usr/lib/sendmail then we should fetch the
 */
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __pyx_t_3 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 163:         # we need to check the name - if it doesn't match:
 164:         # /etc/* bin/* or /usr/lib/sendmail then we should fetch the
 165:         # filelists.xml for all repos to make the searchProvides more complete.
 166:         if name[0] == '/':
  /* "/home/david/coding/yum/yum/depsolve.pyx":166
 *         # /etc/[inserted by cython to avoid comment start]* bin/[inserted by cython to avoid comment start]* or /usr/lib/sendmail then we should fetch the
 *         # filelists.xml for all repos to make the searchProvides more complete.
 *         if name[0] == '/':             # <<<<<<<<<<<<<<
 *             if not misc.re_primary_filename(name):
 *                 self.doSackFilelistPopulate()
 */
  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_name, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_kp_s_18), Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_6) {
 167:             if not misc.re_primary_filename(name):
    /* "/home/david/coding/yum/yum/depsolve.pyx":167
 *         # filelists.xml for all repos to make the searchProvides more complete.
 *         if name[0] == '/':
 *             if not misc.re_primary_filename(name):             # <<<<<<<<<<<<<<
 *                 self.doSackFilelistPopulate()
 * 
 */
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__misc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__re_primary_filename); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __pyx_t_2 = PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = (!__pyx_t_6);
    if (__pyx_t_7) {
 168:                 self.doSackFilelistPopulate()
      /* "/home/david/coding/yum/yum/depsolve.pyx":168
 *         if name[0] == '/':
 *             if not misc.re_primary_filename(name):
 *                 self.doSackFilelistPopulate()             # <<<<<<<<<<<<<<
 * 
 *         pkgs = self.pkgSack.searchProvides(name)
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_19); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;
    goto __pyx_L6;
  }
  __pyx_L6:;
 169: 
 170:         pkgs = self.pkgSack.searchProvides(name)
  /* "/home/david/coding/yum/yum/depsolve.pyx":170
 *                 self.doSackFilelistPopulate()
 * 
 *         pkgs = self.pkgSack.searchProvides(name)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__searchProvides); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_v_pkgs);
  __pyx_v_pkgs = __pyx_t_5;
  __pyx_t_5 = 0;
 171: 
 172: 
 173:         if flags == 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":173
 * 
 * 
 *         if flags == 0:             # <<<<<<<<<<<<<<
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 */
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_flags, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_7) {
 174:             flags = None
    /* "/home/david/coding/yum/yum/depsolve.pyx":174
 * 
 *         if flags == 0:
 *             flags = None             # <<<<<<<<<<<<<<
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 */
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = Py_None;
    goto __pyx_L8;
  }
  __pyx_L8:;
 175:         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
  /* "/home/david/coding/yum/yum/depsolve.pyx":175
 *         if flags == 0:
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_5 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__StringType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = __pyx_t_7;
  if (!__pyx_t_6) {
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__NoneType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __pyx_t_7;
    __pyx_t_7 = __pyx_t_8;
  } else {
    __pyx_t_7 = __pyx_t_6;
  }
  if (!__pyx_t_7) {
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__UnicodeType); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __pyx_t_6;
    __pyx_t_6 = __pyx_t_8;
  } else {
    __pyx_t_6 = __pyx_t_7;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = __pyx_t_6;
  if (__pyx_t_7) {
 176:             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
    /* "/home/david/coding/yum/yum/depsolve.pyx":176
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)             # <<<<<<<<<<<<<<
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__stringToVersion); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_version);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_version);
    __Pyx_GIVEREF(__pyx_v_version);
    __pyx_t_2 = PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyTuple_CheckExact(__pyx_t_2) && likely(PyTuple_GET_SIZE(__pyx_t_2) == 3)) {
      PyObject* tuple = __pyx_t_2;
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_5 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_5);
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_5;
      __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_3;
      __pyx_t_3 = 0;
    } else {
      __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_1, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_1, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_EndUnpack(__pyx_t_1, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_5;
      __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_3;
      __pyx_t_3 = 0;
    }
    goto __pyx_L9;
  }
 177:         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
  /* "/home/david/coding/yum/yum/depsolve.pyx":177
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = version
 * 
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_2 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__TupleType); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_2), __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __pyx_t_7;
  if (!__pyx_t_6) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__ListType); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_2), __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = __pyx_t_7;
    __pyx_t_7 = __pyx_t_8;
  } else {
    __pyx_t_7 = __pyx_t_6;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __pyx_t_7;
  if (__pyx_t_6) {
 178:             (r_e, r_v, r_r) = version
    /* "/home/david/coding/yum/yum/depsolve.pyx":178
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version             # <<<<<<<<<<<<<<
 * 
 *         defSack = ListPackageSack() # holder for items definitely providing this dep
 */
    if (PyTuple_CheckExact(__pyx_v_version) && likely(PyTuple_GET_SIZE(__pyx_v_version) == 3)) {
      PyObject* tuple = __pyx_v_version;
      __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_5 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_5;
      __pyx_t_5 = 0;
    } else {
      __pyx_t_4 = PyObject_GetIter(__pyx_v_version); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_5;
      __pyx_t_5 = 0;
    }
    goto __pyx_L9;
  }
  __pyx_L9:;
 179: 
 180:         defSack = ListPackageSack() # holder for items definitely providing this dep
  /* "/home/david/coding/yum/yum/depsolve.pyx":180
 *             (r_e, r_v, r_r) = version
 * 
 *         defSack = ListPackageSack() # holder for items definitely providing this dep             # <<<<<<<<<<<<<<
 * 
 *         for po in pkgs:
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__ListPackageSack); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_defSack);
  __pyx_v_defSack = __pyx_t_3;
  __pyx_t_3 = 0;
 181: 
 182:         for po in pkgs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":182
 *         defSack = ListPackageSack() # holder for items definitely providing this dep
 * 
 *         for po in pkgs:             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential match for %s from %s'), name, po)
 */
  if (PyList_CheckExact(__pyx_v_pkgs) || PyTuple_CheckExact(__pyx_v_pkgs)) {
    __pyx_t_9 = 0; __pyx_t_3 = __pyx_v_pkgs; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_pkgs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else {
      __pyx_t_5 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_5) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF(__pyx_v_po);
    __pyx_v_po = __pyx_t_5;
    __pyx_t_5 = 0;
 183:             self.verbose_logger.log(logginglevels.DEBUG_2,
    /* "/home/david/coding/yum/yum/depsolve.pyx":183
 * 
 *         for po in pkgs:
 *             self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                 _('Potential match for %s from %s'), name, po)
 *             if name[0] == '/' and r_v is None:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 184:                 _('Potential match for %s from %s'), name, po)
    /* "/home/david/coding/yum/yum/depsolve.pyx":184
 *         for po in pkgs:
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential match for %s from %s'), name, po)             # <<<<<<<<<<<<<<
 *             if name[0] == '/' and r_v is None:
 *                 # file dep add all matches to the defSack
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_20));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_20));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_20));
    __pyx_t_10 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_po);
    PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_po);
    __Pyx_GIVEREF(__pyx_v_po);
    __pyx_t_4 = 0;
    __pyx_t_10 = 0;
    __pyx_t_10 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 185:             if name[0] == '/' and r_v is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":185
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential match for %s from %s'), name, po)
 *             if name[0] == '/' and r_v is None:             # <<<<<<<<<<<<<<
 *                 # file dep add all matches to the defSack
 *                 defSack.addPackage(po)
 */
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_name, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_10, ((PyObject *)__pyx_kp_s_18), Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {
      __pyx_t_7 = (__pyx_v_r_v == Py_None);
      __pyx_t_8 = __pyx_t_7;
    } else {
      __pyx_t_8 = __pyx_t_6;
    }
    if (__pyx_t_8) {
 186:                 # file dep add all matches to the defSack
 187:                 defSack.addPackage(po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":187
 *             if name[0] == '/' and r_v is None:
 *                 # file dep add all matches to the defSack
 *                 defSack.addPackage(po)             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_defSack, __pyx_n_s__addPackage); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 188:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":188
 *                 # file dep add all matches to the defSack
 *                 defSack.addPackage(po)
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 */
      goto __pyx_L10_continue;
      goto __pyx_L12;
    }
    __pyx_L12:;
 189: 
 190:             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
    /* "/home/david/coding/yum/yum/depsolve.pyx":190
 *                 continue
 * 
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):             # <<<<<<<<<<<<<<
 *                 defSack.addPackage(po)
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__checkPrco); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_r_e);
    PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_r_e);
    __Pyx_GIVEREF(__pyx_v_r_e);
    __Pyx_INCREF(__pyx_v_r_v);
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_r_v);
    __Pyx_GIVEREF(__pyx_v_r_v);
    __Pyx_INCREF(__pyx_v_r_r);
    PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_r_r);
    __Pyx_GIVEREF(__pyx_v_r_r);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_flags);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_flags);
    __Pyx_GIVEREF(__pyx_v_flags);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    __pyx_t_10 = 0;
    __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(((PyObject *)__pyx_n_s__provides));
    PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_n_s__provides));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__provides));
    PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {
 191:                 defSack.addPackage(po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":191
 * 
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *                 defSack.addPackage(po)             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
 * 
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_defSack, __pyx_n_s__addPackage); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 192:                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
      /* "/home/david/coding/yum/yum/depsolve.pyx":192
 *             if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *                 defSack.addPackage(po)
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)             # <<<<<<<<<<<<<<
 * 
 *         return defSack
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__debug); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_21));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_21));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_21));
      __pyx_t_4 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __Pyx_INCREF(__pyx_v_name);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_name);
      __Pyx_GIVEREF(__pyx_v_name);
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L13;
    }
    __pyx_L13:;
    __pyx_L10_continue:;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 193: 
 194:         return defSack
  /* "/home/david/coding/yum/yum/depsolve.pyx":194
 *                 self.verbose_logger.debug(_('Matched %s to require for %s'), po, name)
 * 
 *         return defSack             # <<<<<<<<<<<<<<
 * 
 *     def allowedMultipleInstalls(self, po):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_defSack);
  __pyx_r = __pyx_v_defSack;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.whatProvides");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_pkgs);
  __Pyx_DECREF(__pyx_v_r_e);
  __Pyx_DECREF(__pyx_v_r_v);
  __Pyx_DECREF(__pyx_v_r_r);
  __Pyx_DECREF(__pyx_v_defSack);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_flags);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 195: 
 196:     def allowedMultipleInstalls(self, po):
/* "/home/david/coding/yum/yum/depsolve.pyx":196
 *         return defSack
 * 
 *     def allowedMultipleInstalls(self, po):             # <<<<<<<<<<<<<<
 *         """takes a packageObject, returns 1 or 0 depending on if the package
 *            should/can be installed multiple times with different vers
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_allowedMultipleInstalls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_allowedMultipleInstalls[] = "takes a packageObject, returns 1 or 0 depending on if the package \n           should/can be installed multiple times with different vers\n           like kernels and kernel modules, for example";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_allowedMultipleInstalls = {__Pyx_NAMESTR("allowedMultipleInstalls"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_allowedMultipleInstalls, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_allowedMultipleInstalls)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_allowedMultipleInstalls(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *__pyx_cur_scope;
  PyObject *__pyx_v_po = 0;
  PyObject *__pyx_v_provides;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__po,0};
  __Pyx_RefNannySetupContext("allowedMultipleInstalls");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__po);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("allowedMultipleInstalls", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "allowedMultipleInstalls") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_cur_scope->__pyx_v_self = values[0];
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_po = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_cur_scope->__pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_po = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("allowedMultipleInstalls", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.allowedMultipleInstalls");
  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_self = 0;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_provides = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":196
 *         return defSack
 * 
 *     def allowedMultipleInstalls(self, po):             # <<<<<<<<<<<<<<
 *         """takes a packageObject, returns 1 or 0 depending on if the package
 *            should/can be installed multiple times with different vers
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_allowedMultipleInstalls, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s_25, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

/* "/home/david/coding/yum/yum/depsolve.pyx":196
 *         return defSack
 * 
 *     def allowedMultipleInstalls(self, po):             # <<<<<<<<<<<<<<
 *         """takes a packageObject, returns 1 or 0 depending on if the package
 *            should/can be installed multiple times with different vers
 */

struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls {
  PyObject_HEAD
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_provides;
  PyObject *__pyx_v_self;
};
 197:         """takes a packageObject, returns 1 or 0 depending on if the package
 198:            should/can be installed multiple times with different vers
 199:            like kernels and kernel modules, for example"""
 200: 
 201:         if po.name in self.conf.installonlypkgs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":201
 *            like kernels and kernel modules, for example"""
 * 
 *         if po.name in self.conf.installonlypkgs:             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__installonlypkgs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = ((PySequence_Contains(__pyx_t_3, __pyx_t_1))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
 202:             return True
    /* "/home/david/coding/yum/yum/depsolve.pyx":202
 * 
 *         if po.name in self.conf.installonlypkgs:
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         provides = po.provides_names
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 203: 
 204:         provides = po.provides_names
  /* "/home/david/coding/yum/yum/depsolve.pyx":204
 *             return True
 * 
 *         provides = po.provides_names             # <<<<<<<<<<<<<<
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
 *             return True
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__provides_names); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_v_provides);
  __pyx_v_provides = __pyx_t_3;
  __pyx_t_3 = 0;
 205:         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
/* "/home/david/coding/yum/yum/depsolve.pyx":205
 * 
 *         provides = po.provides_names
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):             # <<<<<<<<<<<<<<
 *             return True
 * 
 */

static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1(PyObject *__pyx_self, PyObject *__pyx_v_prov); /*proto*/
static PyMethodDef __pyx_lambda_methdef3yum_8depsolve_23allowedMultipleInstalls_lambda1 = {__Pyx_NAMESTR("__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1"), (PyCFunction)__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1(PyObject *__pyx_self, PyObject *__pyx_v_prov) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__pyx_lambda_funcdef3yum_8depsolve_23allowedMultipleInstalls_lambda1");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct_allowedMultipleInstalls *)__pyx_self;
  __pyx_self = __pyx_self;
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_outer_scope->__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__installonlypkgs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((PySequence_Contains(__pyx_t_2, __pyx_v_prov))); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("yum.depsolve.allowedMultipleInstalls.lambda1");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

  /* "/home/david/coding/yum/yum/depsolve.pyx":205
 * 
 *         provides = po.provides_names
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):             # <<<<<<<<<<<<<<
 *             return True
 * 
 */
  __pyx_t_3 = __pyx_binding_PyCFunctionType_New(&__pyx_lambda_methdef3yum_8depsolve_23allowedMultipleInstalls_lambda1, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_provides);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_provides);
  __Pyx_GIVEREF(__pyx_v_provides);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_builtin_filter, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
 206:             return True
    /* "/home/david/coding/yum/yum/depsolve.pyx":206
 *         provides = po.provides_names
 *         if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
 *             return True             # <<<<<<<<<<<<<<
 * 
 *         return False
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;
 207: 
 208:         return False
  /* "/home/david/coding/yum/yum/depsolve.pyx":208
 *             return True
 * 
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def populateTs(self, test=0, keepold=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.allowedMultipleInstalls");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_provides);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 209: 
 210:     def populateTs(self, test=0, keepold=1):
/* "/home/david/coding/yum/yum/depsolve.pyx":210
 *         return False
 * 
 *     def populateTs(self, test=0, keepold=1):             # <<<<<<<<<<<<<<
 *         """take transactionData class and populate transaction set"""
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_populateTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve_populateTs[] = "take transactionData class and populate transaction set";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_populateTs = {__Pyx_NAMESTR("populateTs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_populateTs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve_populateTs)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_populateTs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_test = 0;
  PyObject *__pyx_v_keepold = 0;
  PyObject *__pyx_v_ts_elem;
  PyObject *__pyx_v_te;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_pkginfo;
  PyObject *__pyx_v_mode;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_rpmfile;
  PyObject *__pyx_v_hdr;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__test,&__pyx_n_s__keepold,0};
  __Pyx_RefNannySetupContext("populateTs");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    values[1] = ((PyObject *)__pyx_int_0);
    values[2] = ((PyObject *)__pyx_int_1);
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__test);
        if (value) { values[1] = value; kw_args--; }
      }
      case  2:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__keepold);
        if (value) { values[2] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "populateTs") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_test = values[1];
    __pyx_v_keepold = values[2];
  } else {
    __pyx_v_test = ((PyObject *)__pyx_int_0);
    __pyx_v_keepold = ((PyObject *)__pyx_int_1);
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: __pyx_v_keepold = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: __pyx_v_test = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("populateTs", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.populateTs");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_ts_elem = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_te = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_epoch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkginfo = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_mode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rpmfile = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_hdr = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":210
 *         return False
 * 
 *     def populateTs(self, test=0, keepold=1):             # <<<<<<<<<<<<<<
 *         """take transactionData class and populate transaction set"""
 * 
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_populateTs, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__populateTs, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 211:         """take transactionData class and populate transaction set"""
 212: 
 213:         if self.dsCallback: self.dsCallback.transactionPopulation()
  /* "/home/david/coding/yum/yum/depsolve.pyx":213
 *         """take transactionData class and populate transaction set"""
 * 
 *         if self.dsCallback: self.dsCallback.transactionPopulation()             # <<<<<<<<<<<<<<
 *         ts_elem = {}
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_22); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 214:         ts_elem = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":214
 * 
 *         if self.dsCallback: self.dsCallback.transactionPopulation()
 *         ts_elem = {}             # <<<<<<<<<<<<<<
 * 
 *         if self.ts.ts is None:
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_ts_elem));
  __pyx_v_ts_elem = __pyx_t_1;
  __pyx_t_1 = 0;
 215: 
 216:         if self.ts.ts is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":216
 *         ts_elem = {}
 * 
 *         if self.ts.ts is None:             # <<<<<<<<<<<<<<
 *             self.initActionTs()
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__ts); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = (__pyx_t_3 == Py_None);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_2) {
 217:             self.initActionTs()
    /* "/home/david/coding/yum/yum/depsolve.pyx":217
 * 
 *         if self.ts.ts is None:
 *             self.initActionTs()             # <<<<<<<<<<<<<<
 * 
 *         if keepold:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__initActionTs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;
 218: 
 219:         if keepold:
  /* "/home/david/coding/yum/yum/depsolve.pyx":219
 *             self.initActionTs()
 * 
 *         if keepold:             # <<<<<<<<<<<<<<
 *             for te in self.ts:
 *                 epoch = te.E()
 */
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_keepold); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_2) {
 220:             for te in self.ts:
    /* "/home/david/coding/yum/yum/depsolve.pyx":220
 * 
 *         if keepold:
 *             for te in self.ts:             # <<<<<<<<<<<<<<
 *                 epoch = te.E()
 *                 if epoch is None:
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_4 = 0; __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
      } else {
        __pyx_t_1 = PyIter_Next(__pyx_t_3);
        if (!__pyx_t_1) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_v_te);
      __pyx_v_te = __pyx_t_1;
      __pyx_t_1 = 0;
 221:                 epoch = te.E()
      /* "/home/david/coding/yum/yum/depsolve.pyx":221
 *         if keepold:
 *             for te in self.ts:
 *                 epoch = te.E()             # <<<<<<<<<<<<<<
 *                 if epoch is None:
 *                     epoch = '0'
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__E); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_epoch);
      __pyx_v_epoch = __pyx_t_5;
      __pyx_t_5 = 0;
 222:                 if epoch is None:
      /* "/home/david/coding/yum/yum/depsolve.pyx":222
 *             for te in self.ts:
 *                 epoch = te.E()
 *                 if epoch is None:             # <<<<<<<<<<<<<<
 *                     epoch = '0'
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 */
      __pyx_t_2 = (__pyx_v_epoch == Py_None);
      if (__pyx_t_2) {
 223:                     epoch = '0'
        /* "/home/david/coding/yum/yum/depsolve.pyx":223
 *                 epoch = te.E()
 *                 if epoch is None:
 *                     epoch = '0'             # <<<<<<<<<<<<<<
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 *                 if te.Type() == 1:
 */
        __Pyx_INCREF(((PyObject *)__pyx_kp_s__0));
        __Pyx_DECREF(__pyx_v_epoch);
        __pyx_v_epoch = ((PyObject *)__pyx_kp_s__0);
        goto __pyx_L11;
      }
      __pyx_L11:;
 224:                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
      /* "/home/david/coding/yum/yum/depsolve.pyx":224
 *                 if epoch is None:
 *                     epoch = '0'
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())             # <<<<<<<<<<<<<<
 *                 if te.Type() == 1:
 *                     mode = 'i'
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__N); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__A); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__V); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__R); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_epoch);
      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_epoch);
      __Pyx_GIVEREF(__pyx_v_epoch);
      PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_1 = 0;
      __pyx_t_6 = 0;
      __pyx_t_7 = 0;
      __pyx_t_8 = 0;
      if (!(likely(PyTuple_CheckExact(__pyx_t_5))||(PyErr_Format(PyExc_TypeError, "Expected tuple, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(((PyObject *)__pyx_v_pkginfo));
      __pyx_v_pkginfo = ((PyObject *)__pyx_t_5);
      __pyx_t_5 = 0;
 225:                 if te.Type() == 1:
      /* "/home/david/coding/yum/yum/depsolve.pyx":225
 *                     epoch = '0'
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 *                 if te.Type() == 1:             # <<<<<<<<<<<<<<
 *                     mode = 'i'
 *                 elif te.Type() == 2:
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__Type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_8, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_2) {
 226:                     mode = 'i'
        /* "/home/david/coding/yum/yum/depsolve.pyx":226
 *                 pkginfo = (te.N(), te.A(), epoch, te.V(), te.R())
 *                 if te.Type() == 1:
 *                     mode = 'i'             # <<<<<<<<<<<<<<
 *                 elif te.Type() == 2:
 *                     mode = 'e'
 */
        __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
        __Pyx_DECREF(__pyx_v_mode);
        __pyx_v_mode = ((PyObject *)__pyx_n_s__i);
        goto __pyx_L12;
      }
 227:                 elif te.Type() == 2:
      /* "/home/david/coding/yum/yum/depsolve.pyx":227
 *                 if te.Type() == 1:
 *                     mode = 'i'
 *                 elif te.Type() == 2:             # <<<<<<<<<<<<<<
 *                     mode = 'e'
 * 
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_te, __pyx_n_s__Type); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_8, __pyx_int_2, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_2) {
 228:                     mode = 'e'
        /* "/home/david/coding/yum/yum/depsolve.pyx":228
 *                     mode = 'i'
 *                 elif te.Type() == 2:
 *                     mode = 'e'             # <<<<<<<<<<<<<<
 * 
 *                 ts_elem[(pkginfo, mode)] = 1
 */
        __Pyx_INCREF(((PyObject *)__pyx_n_s__e));
        __Pyx_DECREF(__pyx_v_mode);
        __pyx_v_mode = ((PyObject *)__pyx_n_s__e);
        goto __pyx_L12;
      }
      __pyx_L12:;
 229: 
 230:                 ts_elem[(pkginfo, mode)] = 1
      /* "/home/david/coding/yum/yum/depsolve.pyx":230
 *                     mode = 'e'
 * 
 *                 ts_elem[(pkginfo, mode)] = 1             # <<<<<<<<<<<<<<
 * 
 *         for txmbr in self.tsInfo.getMembers():
 */
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(((PyObject *)__pyx_v_pkginfo));
      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_pkginfo));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_pkginfo));
      __Pyx_INCREF(__pyx_v_mode);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_mode);
      __Pyx_GIVEREF(__pyx_v_mode);
      if (PyDict_SetItem(((PyObject *)__pyx_v_ts_elem), __pyx_t_5, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8;
  }
  __pyx_L8:;
 231: 
 232:         for txmbr in self.tsInfo.getMembers():
  /* "/home/david/coding/yum/yum/depsolve.pyx":232
 *                 ts_elem[(pkginfo, mode)] = 1
 * 
 *         for txmbr in self.tsInfo.getMembers():             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
 *             if txmbr.ts_state in ['u', 'i']:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getMembers); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = 0; __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5);
  } else {
    __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_5))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_5))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_5);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_3;
    __pyx_t_3 = 0;
 233:             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
    /* "/home/david/coding/yum/yum/depsolve.pyx":233
 * 
 *         for txmbr in self.tsInfo.getMembers():
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)             # <<<<<<<<<<<<<<
 *             if txmbr.ts_state in ['u', 'i']:
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_23));
    PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_s_23));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_23));
    __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_txmbr);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_txmbr);
    __Pyx_GIVEREF(__pyx_v_txmbr);
    __pyx_t_7 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 234:             if txmbr.ts_state in ['u', 'i']:
    /* "/home/david/coding/yum/yum/depsolve.pyx":234
 *         for txmbr in self.tsInfo.getMembers():
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
 *             if txmbr.ts_state in ['u', 'i']:             # <<<<<<<<<<<<<<
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 *                     continue
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = __pyx_t_2;
    if (!__pyx_t_9) {
      __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__i), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_10 = __pyx_t_2;
      __pyx_t_2 = __pyx_t_10;
    } else {
      __pyx_t_2 = __pyx_t_9;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_9 = __pyx_t_2;
    if (__pyx_t_9) {
 235:                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
      /* "/home/david/coding/yum/yum/depsolve.pyx":235
 *             self.verbose_logger.log(logginglevels.DEBUG_3, _('Member: %s'), txmbr)
 *             if txmbr.ts_state in ['u', 'i']:
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):             # <<<<<<<<<<<<<<
 *                     continue
 *                 rpmfile = txmbr.po.localPkg()
 */
      __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_ts_elem), __pyx_n_s__has_key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_INCREF(((PyObject *)__pyx_n_s__i));
      PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_n_s__i));
      __Pyx_GIVEREF(((PyObject *)__pyx_n_s__i));
      __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_9) {
 236:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":236
 *             if txmbr.ts_state in ['u', 'i']:
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 *                     continue             # <<<<<<<<<<<<<<
 *                 rpmfile = txmbr.po.localPkg()
 *                 if os.path.exists(rpmfile):
 */
        goto __pyx_L13_continue;
        goto __pyx_L16;
      }
      __pyx_L16:;
 237:                 rpmfile = txmbr.po.localPkg()
      /* "/home/david/coding/yum/yum/depsolve.pyx":237
 *                 if ts_elem.has_key((txmbr.pkgtup, 'i')):
 *                     continue
 *                 rpmfile = txmbr.po.localPkg()             # <<<<<<<<<<<<<<
 *                 if os.path.exists(rpmfile):
 *                     hdr = txmbr.po.returnHeaderFromPackage()
 */
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__localPkg); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_rpmfile);
      __pyx_v_rpmfile = __pyx_t_8;
      __pyx_t_8 = 0;
 238:                 if os.path.exists(rpmfile):
      /* "/home/david/coding/yum/yum/depsolve.pyx":238
 *                     continue
 *                 rpmfile = txmbr.po.localPkg()
 *                 if os.path.exists(rpmfile):             # <<<<<<<<<<<<<<
 *                     hdr = txmbr.po.returnHeaderFromPackage()
 *                 else:
 */
      __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__os); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__path); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__exists); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_rpmfile);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_rpmfile);
      __Pyx_GIVEREF(__pyx_v_rpmfile);
      __pyx_t_1 = PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_9) {
 239:                     hdr = txmbr.po.returnHeaderFromPackage()
        /* "/home/david/coding/yum/yum/depsolve.pyx":239
 *                 rpmfile = txmbr.po.localPkg()
 *                 if os.path.exists(rpmfile):
 *                     hdr = txmbr.po.returnHeaderFromPackage()             # <<<<<<<<<<<<<<
 *                 else:
 *                     self.downloadHeader(txmbr.po)
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_24); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_hdr);
        __pyx_v_hdr = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L17;
      }
      /*else*/ {
 240:                 else:
 241:                     self.downloadHeader(txmbr.po)
        /* "/home/david/coding/yum/yum/depsolve.pyx":241
 *                     hdr = txmbr.po.returnHeaderFromPackage()
 *                 else:
 *                     self.downloadHeader(txmbr.po)             # <<<<<<<<<<<<<<
 *                     hdr = txmbr.po.returnLocalHeader()
 * 
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__downloadHeader); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 242:                     hdr = txmbr.po.returnLocalHeader()
        /* "/home/david/coding/yum/yum/depsolve.pyx":242
 *                 else:
 *                     self.downloadHeader(txmbr.po)
 *                     hdr = txmbr.po.returnLocalHeader()             # <<<<<<<<<<<<<<
 * 
 *                 if txmbr.ts_state == 'u':
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__returnLocalHeader); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_v_hdr);
        __pyx_v_hdr = __pyx_t_6;
        __pyx_t_6 = 0;
      }
      __pyx_L17:;
 243: 
 244:                 if txmbr.ts_state == 'u':
      /* "/home/david/coding/yum/yum/depsolve.pyx":244
 *                     hdr = txmbr.po.returnLocalHeader()
 * 
 *                 if txmbr.ts_state == 'u':             # <<<<<<<<<<<<<<
 *                     if self.allowedMultipleInstalls(txmbr.po):
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_9) {
 245:                     if self.allowedMultipleInstalls(txmbr.po):
        /* "/home/david/coding/yum/yum/depsolve.pyx":245
 * 
 *                 if txmbr.ts_state == 'u':
 *                     if self.allowedMultipleInstalls(txmbr.po):             # <<<<<<<<<<<<<<
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 *                             _('%s converted to install'), txmbr.po)
 */
        __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_25); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_9) {
 246:                         self.verbose_logger.log(logginglevels.DEBUG_2,
          /* "/home/david/coding/yum/yum/depsolve.pyx":246
 *                 if txmbr.ts_state == 'u':
 *                     if self.allowedMultipleInstalls(txmbr.po):
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                             _('%s converted to install'), txmbr.po)
 *                         txmbr.ts_state = 'i'
 */
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_8 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 247:                             _('%s converted to install'), txmbr.po)
          /* "/home/david/coding/yum/yum/depsolve.pyx":247
 *                     if self.allowedMultipleInstalls(txmbr.po):
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 *                             _('%s converted to install'), txmbr.po)             # <<<<<<<<<<<<<<
 *                         txmbr.ts_state = 'i'
 *                         txmbr.output_state = TS_INSTALL
 */
          __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_26));
          PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_26));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_26));
          __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_7);
          __pyx_t_8 = 0;
          __pyx_t_3 = 0;
          __pyx_t_7 = 0;
          __pyx_t_7 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 248:                         txmbr.ts_state = 'i'
          /* "/home/david/coding/yum/yum/depsolve.pyx":248
 *                         self.verbose_logger.log(logginglevels.DEBUG_2,
 *                             _('%s converted to install'), txmbr.po)
 *                         txmbr.ts_state = 'i'             # <<<<<<<<<<<<<<
 *                         txmbr.output_state = TS_INSTALL
 * 
 */
          if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state, ((PyObject *)__pyx_n_s__i)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 249:                         txmbr.output_state = TS_INSTALL
          /* "/home/david/coding/yum/yum/depsolve.pyx":249
 *                             _('%s converted to install'), txmbr.po)
 *                         txmbr.ts_state = 'i'
 *                         txmbr.output_state = TS_INSTALL             # <<<<<<<<<<<<<<
 * 
 * 
 */
          __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__output_state, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          goto __pyx_L19;
        }
        __pyx_L19:;
        goto __pyx_L18;
      }
      __pyx_L18:;
 250: 
 251: 
 252:                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
      /* "/home/david/coding/yum/yum/depsolve.pyx":252
 * 
 * 
 *                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__addInstall); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_hdr);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_hdr);
      __Pyx_GIVEREF(__pyx_v_hdr);
      __Pyx_INCREF(__pyx_v_rpmfile);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_rpmfile);
      __Pyx_GIVEREF(__pyx_v_rpmfile);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_hdr);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_hdr);
      __Pyx_GIVEREF(__pyx_v_hdr);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_7 = 0;
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 253:                 self.verbose_logger.log(logginglevels.DEBUG_1,
      /* "/home/david/coding/yum/yum/depsolve.pyx":253
 * 
 *                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,             # <<<<<<<<<<<<<<
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 *                 if self.dsCallback:
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 254:                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
      /* "/home/david/coding/yum/yum/depsolve.pyx":254
 *                 self.ts.addInstall(hdr, (hdr, rpmfile), txmbr.ts_state)
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)             # <<<<<<<<<<<<<<
 *                 if self.dsCallback:
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_27));
      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_27));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_27));
      __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_6 = 0;
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 255:                 if self.dsCallback:
      /* "/home/david/coding/yum/yum/depsolve.pyx":255
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 *                 if self.dsCallback:             # <<<<<<<<<<<<<<
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 * 
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_9) {
 256:                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
        /* "/home/david/coding/yum/yum/depsolve.pyx":256
 *                     _('Adding Package %s in mode %s'), txmbr.po, txmbr.ts_state)
 *                 if self.dsCallback:
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)             # <<<<<<<<<<<<<<
 * 
 *             elif txmbr.ts_state in ['e']:
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__pkgAdded); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_1 = 0;
        __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_Call(__pyx_t_11, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L20;
      }
      __pyx_L20:;
      goto __pyx_L15;
    }
 257: 
 258:             elif txmbr.ts_state in ['e']:
    /* "/home/david/coding/yum/yum/depsolve.pyx":258
 *                     self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 * 
 *             elif txmbr.ts_state in ['e']:             # <<<<<<<<<<<<<<
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
 *                     continue
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_n_s__e), Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __pyx_t_9;
    if (__pyx_t_2) {
 259:                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
      /* "/home/david/coding/yum/yum/depsolve.pyx":259
 * 
 *             elif txmbr.ts_state in ['e']:
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):             # <<<<<<<<<<<<<<
 *                     continue
 *                 self.ts.addErase(txmbr.po.idx)
 */
      __pyx_t_3 = PyObject_GetAttr(((PyObject *)__pyx_v_ts_elem), __pyx_n_s__has_key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_11 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_11);
      __pyx_t_7 = 0;
      __pyx_t_11 = 0;
      __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_2) {
 260:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":260
 *             elif txmbr.ts_state in ['e']:
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
 *                     continue             # <<<<<<<<<<<<<<
 *                 self.ts.addErase(txmbr.po.idx)
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 */
        goto __pyx_L13_continue;
        goto __pyx_L21;
      }
      __pyx_L21:;
 261:                 self.ts.addErase(txmbr.po.idx)
      /* "/home/david/coding/yum/yum/depsolve.pyx":261
 *                 if ts_elem.has_key((txmbr.pkgtup, txmbr.ts_state)):
 *                     continue
 *                 self.ts.addErase(txmbr.po.idx)             # <<<<<<<<<<<<<<
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__ts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__addErase); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__idx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_t_11, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 262:                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
      /* "/home/david/coding/yum/yum/depsolve.pyx":262
 *                     continue
 *                 self.ts.addErase(txmbr.po.idx)
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Removing Package %s'), txmbr.po)
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_2) {
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__pkgAdded); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __Pyx_INCREF(((PyObject *)__pyx_n_s__e));
        PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)__pyx_n_s__e));
        __Pyx_GIVEREF(((PyObject *)__pyx_n_s__e));
        __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L22;
      }
      __pyx_L22:;
 263:                 self.verbose_logger.log(logginglevels.DEBUG_1,
      /* "/home/david/coding/yum/yum/depsolve.pyx":263
 *                 self.ts.addErase(txmbr.po.idx)
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,             # <<<<<<<<<<<<<<
 *                     _('Removing Package %s'), txmbr.po)
 * 
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_11 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 264:                     _('Removing Package %s'), txmbr.po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":264
 *                 if self.dsCallback: self.dsCallback.pkgAdded(txmbr.pkgtup, 'e')
 *                 self.verbose_logger.log(logginglevels.DEBUG_1,
 *                     _('Removing Package %s'), txmbr.po)             # <<<<<<<<<<<<<<
 * 
 *     def _processReq(self, po, requirement):
 */
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_28));
      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_28));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_28));
      __pyx_t_8 = PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_1 = 0;
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L15;
    }
    __pyx_L15:;
    __pyx_L13_continue:;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.populateTs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_ts_elem);
  __Pyx_DECREF(__pyx_v_te);
  __Pyx_DECREF(__pyx_v_epoch);
  __Pyx_DECREF(__pyx_v_pkginfo);
  __Pyx_DECREF(__pyx_v_mode);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_rpmfile);
  __Pyx_DECREF(__pyx_v_hdr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 265: 
 266:     def _processReq(self, po, requirement):
/* "/home/david/coding/yum/yum/depsolve.pyx":266
 *                     _('Removing Package %s'), txmbr.po)
 * 
 *     def _processReq(self, po, requirement):             # <<<<<<<<<<<<<<
 *         """processes a Requires dep from the resolveDeps functions, returns a tuple
 *            of (CheckDeps, missingdep, conflicts, errors) the last item is an array
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__processReq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__processReq[] = "processes a Requires dep from the resolveDeps functions, returns a tuple\n           of (CheckDeps, missingdep, conflicts, errors) the last item is an array\n           of error messages";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__processReq = {__Pyx_NAMESTR("_processReq"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__processReq, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__processReq)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__processReq(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_po = 0;
  PyObject *__pyx_v_requirement = 0;
  PyObject *__pyx_v_errormsgs;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_flags;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_niceformatneed;
  PyObject *__pyx_v_CheckDeps;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_e;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__po,&__pyx_n_s__requirement,0};
  __Pyx_RefNannySetupContext("_processReq");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__po);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_processReq", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requirement);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_processReq", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_processReq") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_po = values[1];
    __pyx_v_requirement = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_po = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_requirement = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_processReq", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._processReq");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_errormsgs = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_needname = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_flags = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needversion = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_niceformatneed = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_CheckDeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missingdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_e = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":266
 *                     _('Removing Package %s'), txmbr.po)
 * 
 *     def _processReq(self, po, requirement):             # <<<<<<<<<<<<<<
 *         """processes a Requires dep from the resolveDeps functions, returns a tuple
 *            of (CheckDeps, missingdep, conflicts, errors) the last item is an array
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__processReq, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___processReq, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 267:         """processes a Requires dep from the resolveDeps functions, returns a tuple
 268:            of (CheckDeps, missingdep, conflicts, errors) the last item is an array
 269:            of error messages"""
 270: 
 271:         errormsgs = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":271
 *            of error messages"""
 * 
 *         errormsgs = []             # <<<<<<<<<<<<<<
 * 
 *         needname, flags, needversion = requirement
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_errormsgs));
  __pyx_v_errormsgs = __pyx_t_1;
  __pyx_t_1 = 0;
 272: 
 273:         needname, flags, needversion = requirement
  /* "/home/david/coding/yum/yum/depsolve.pyx":273
 *         errormsgs = []
 * 
 *         needname, flags, needversion = requirement             # <<<<<<<<<<<<<<
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
 */
  if (PyTuple_CheckExact(__pyx_v_requirement) && likely(PyTuple_GET_SIZE(__pyx_v_requirement) == 3)) {
    PyObject* tuple = __pyx_v_requirement;
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = PyObject_GetIter(__pyx_v_requirement); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_3;
    __pyx_t_3 = 0;
  }
 274:         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
  /* "/home/david/coding/yum/yum/depsolve.pyx":274
 * 
 *         needname, flags, needversion = requirement
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)             # <<<<<<<<<<<<<<
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__formatRequire); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __Pyx_INCREF(__pyx_v_flags);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_flags);
  __Pyx_GIVEREF(__pyx_v_flags);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __pyx_v_niceformatneed = __pyx_t_1;
  __pyx_t_1 = 0;
 275:         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
  /* "/home/david/coding/yum/yum/depsolve.pyx":275
 *         needname, flags, needversion = requirement
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)             # <<<<<<<<<<<<<<
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_29));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_29));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_29));
  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_po);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_po);
  __Pyx_GIVEREF(__pyx_v_po);
  __Pyx_INCREF(__pyx_v_niceformatneed);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_niceformatneed);
  __Pyx_GIVEREF(__pyx_v_niceformatneed);
  __pyx_t_3 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 276:         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
  /* "/home/david/coding/yum/yum/depsolve.pyx":276
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('%s requires: %s'), po, niceformatneed)
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__procReq); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_niceformatneed);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_niceformatneed);
    __Pyx_GIVEREF(__pyx_v_niceformatneed);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 277: 
 278:         try:
  /* "/home/david/coding/yum/yum/depsolve.pyx":278
 *         if self.dsCallback: self.dsCallback.procReq(po.name, niceformatneed)
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             if po.repo.id != "installed":
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
 */
  {
    PyObject *__pyx_save_exc_type, *__pyx_save_exc_value, *__pyx_save_exc_tb;
    __Pyx_ExceptionSave(&__pyx_save_exc_type, &__pyx_save_exc_value, &__pyx_save_exc_tb);
    __Pyx_XGOTREF(__pyx_save_exc_type);
    __Pyx_XGOTREF(__pyx_save_exc_value);
    __Pyx_XGOTREF(__pyx_save_exc_tb);
    /*try:*/ {
 279:             if po.repo.id != "installed":
      /* "/home/david/coding/yum/yum/depsolve.pyx":279
 * 
 *         try:
 *             if po.repo.id != "installed":             # <<<<<<<<<<<<<<
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
 *             else:
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__repo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__id); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_n_s__installed), Py_NE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_6) {
 280:                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
        /* "/home/david/coding/yum/yum/depsolve.pyx":280
 *         try:
 *             if po.repo.id != "installed":
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)             # <<<<<<<<<<<<<<
 *             else:
 *                 CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)
 */
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_requirement);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_requirement);
        __Pyx_GIVEREF(__pyx_v_requirement);
        __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
        PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_errormsgs));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
        __pyx_t_4 = PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 2)) {
          PyObject* tuple = __pyx_t_4;
          __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
          __pyx_t_5 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_2;
          __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_5;
          __pyx_t_5 = 0;
        } else {
          __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_3, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_3, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_5);
          if (__Pyx_EndUnpack(__pyx_t_3, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_2;
          __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_5;
          __pyx_t_5 = 0;
        }
        goto __pyx_L15;
      }
      /*else*/ {
 281:             else:
 282:                 CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)
        /* "/home/david/coding/yum/yum/depsolve.pyx":282
 *                 CheckDeps, missingdep = self._requiringFromTransaction(po, requirement, errormsgs)
 *             else:
 *                 CheckDeps, missingdep = self._requiringFromInstalled(po, requirement, errormsgs)             # <<<<<<<<<<<<<<
 * 
 *             # Check packages with problems
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_31); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_requirement);
        PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_requirement);
        __Pyx_GIVEREF(__pyx_v_requirement);
        __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
        PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_errormsgs));
        __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
        __pyx_t_2 = PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (PyTuple_CheckExact(__pyx_t_2) && likely(PyTuple_GET_SIZE(__pyx_t_2) == 2)) {
          PyObject* tuple = __pyx_t_2;
          __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
          __pyx_t_4 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_5;
          __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_4;
          __pyx_t_4 = 0;
        } else {
          __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_3, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_3, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_GOTREF(__pyx_t_4);
          if (__Pyx_EndUnpack(__pyx_t_3, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_v_CheckDeps);
          __pyx_v_CheckDeps = __pyx_t_5;
          __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_v_missingdep);
          __pyx_v_missingdep = __pyx_t_4;
          __pyx_t_4 = 0;
        }
      }
      __pyx_L15:;
 283: 
 284:             # Check packages with problems
 285:             if missingdep:
      /* "/home/david/coding/yum/yum/depsolve.pyx":285
 * 
 *             # Check packages with problems
 *             if missingdep:             # <<<<<<<<<<<<<<
 *                 self.po_with_problems.add((po,self._working_po,errormsgs[-1]))
 * 
 */
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_missingdep); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
      if (__pyx_t_6) {
 286:                 self.po_with_problems.add((po,self._working_po,errormsgs[-1]))
        /* "/home/david/coding/yum/yum/depsolve.pyx":286
 *             # Check packages with problems
 *             if missingdep:
 *                 self.po_with_problems.add((po,self._working_po,errormsgs[-1]))             # <<<<<<<<<<<<<<
 * 
 * 
 */
        __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__po_with_problems); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__add); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___working_po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_errormsgs), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        __pyx_t_2 = 0;
        __pyx_t_5 = 0;
        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        goto __pyx_L16;
      }
      __pyx_L16:;
    }
    __Pyx_XDECREF(__pyx_save_exc_type); __pyx_save_exc_type = 0;
    __Pyx_XDECREF(__pyx_save_exc_value); __pyx_save_exc_value = 0;
    __Pyx_XDECREF(__pyx_save_exc_tb); __pyx_save_exc_tb = 0;
    goto __pyx_L14_try_end;
    __pyx_L7_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 287: 
 288: 
 289:         except Errors.DepError,e:
    /* "/home/david/coding/yum/yum/depsolve.pyx":289
 * 
 * 
 *         except Errors.DepError,e:             # <<<<<<<<<<<<<<
 *             # FIXME: This is a hack, it don't solve the problem
 *             # of tries to update to a package the have been removed from the
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__Errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DepError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_7) {
      __Pyx_AddTraceback("yum.depsolve.Depsolve._processReq");
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_3, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_v_e);
      __pyx_v_e = __pyx_t_3;
 290:             # FIXME: This is a hack, it don't solve the problem
 291:             # of tries to update to a package the have been removed from the
 292:             # pkgSack because of dep problems.
 293:             # The real solution is to remove the package from the updates, when
 294:             # it is remove from the pkgSack
 295:             self.po_with_problems.add((po,self._working_po,str(e)))
      /* "/home/david/coding/yum/yum/depsolve.pyx":295
 *             # The real solution is to remove the package from the updates, when
 *             # it is remove from the pkgSack
 *             self.po_with_problems.add((po,self._working_po,str(e)))             # <<<<<<<<<<<<<<
 *             CheckDeps = 1
 *             missingdep = 0
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__po_with_problems); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__add); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___working_po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_e);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_e);
      __Pyx_GIVEREF(__pyx_v_e);
      __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_9);
      __pyx_t_2 = 0;
      __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L9_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 296:             CheckDeps = 1
      /* "/home/david/coding/yum/yum/depsolve.pyx":296
 *             # it is remove from the pkgSack
 *             self.po_with_problems.add((po,self._working_po,str(e)))
 *             CheckDeps = 1             # <<<<<<<<<<<<<<
 *             missingdep = 0
 * 
 */
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF(__pyx_v_CheckDeps);
      __pyx_v_CheckDeps = __pyx_int_1;
 297:             missingdep = 0
      /* "/home/david/coding/yum/yum/depsolve.pyx":297
 *             self.po_with_problems.add((po,self._working_po,str(e)))
 *             CheckDeps = 1
 *             missingdep = 0             # <<<<<<<<<<<<<<
 * 
 *         return (CheckDeps, missingdep, errormsgs)
 */
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF(__pyx_v_missingdep);
      __pyx_v_missingdep = __pyx_int_0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L8_exception_handled;
    }
    __pyx_L9_except_error:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    goto __pyx_L1_error;
    __pyx_L8_exception_handled:;
    __Pyx_XGIVEREF(__pyx_save_exc_type);
    __Pyx_XGIVEREF(__pyx_save_exc_value);
    __Pyx_XGIVEREF(__pyx_save_exc_tb);
    __Pyx_ExceptionReset(__pyx_save_exc_type, __pyx_save_exc_value, __pyx_save_exc_tb);
    __pyx_L14_try_end:;
  }
 298: 
 299:         return (CheckDeps, missingdep, errormsgs)
  /* "/home/david/coding/yum/yum/depsolve.pyx":299
 *             missingdep = 0
 * 
 *         return (CheckDeps, missingdep, errormsgs)             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_CheckDeps);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_CheckDeps);
  __Pyx_GIVEREF(__pyx_v_CheckDeps);
  __Pyx_INCREF(__pyx_v_missingdep);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_missingdep);
  __Pyx_GIVEREF(__pyx_v_missingdep);
  __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
  PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_errormsgs));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._processReq");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_errormsgs);
  __Pyx_DECREF(__pyx_v_needname);
  __Pyx_DECREF(__pyx_v_flags);
  __Pyx_DECREF(__pyx_v_needversion);
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __Pyx_DECREF(__pyx_v_CheckDeps);
  __Pyx_DECREF(__pyx_v_missingdep);
  __Pyx_DECREF(__pyx_v_e);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 300: 
 301:     @staticmethod
 302:     def _prco_req_nfv2req(rn, rf, rv):
/* "/home/david/coding/yum/yum/depsolve.pyx":302
 * 
 *     @staticmethod
 *     def _prco_req_nfv2req(rn, rf, rv):             # <<<<<<<<<<<<<<
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req_nfv2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__prco_req_nfv2req = {__Pyx_NAMESTR("_prco_req_nfv2req"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__prco_req_nfv2req, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req_nfv2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_rn = 0;
  PyObject *__pyx_v_rf = 0;
  PyObject *__pyx_v_rv = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__rn,&__pyx_n_s__rf,&__pyx_n_s__rv,0};
  __Pyx_RefNannySetupContext("_prco_req_nfv2req");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rn);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rf);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_prco_req_nfv2req", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__rv);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_prco_req_nfv2req", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_prco_req_nfv2req") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_rn = values[0];
    __pyx_v_rf = values[1];
    __pyx_v_rv = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_rn = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_rf = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_rv = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_prco_req_nfv2req", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req_nfv2req");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":302
 * 
 *     @staticmethod
 *     def _prco_req_nfv2req(rn, rf, rv):             # <<<<<<<<<<<<<<
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__prco_req_nfv2req, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___prco_req_nfv2req, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "/home/david/coding/yum/yum/depsolve.pyx":301
 *         return (CheckDeps, missingdep, errormsgs)
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _prco_req_nfv2req(rn, rf, rv):
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_t_5, __pyx_n_s___prco_req_nfv2req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_builtin_staticmethod, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___prco_req_nfv2req, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 303:         return (rn, flags[rf], version_tuple_to_string(rv))
  /* "/home/david/coding/yum/yum/depsolve.pyx":303
 *     @staticmethod
 *     def _prco_req_nfv2req(rn, rf, rv):
 *         return (rn, flags[rf], version_tuple_to_string(rv))             # <<<<<<<<<<<<<<
 * 
 *     def _prco_req2req(self, req):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetItem(__pyx_t_1, __pyx_v_rf); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s_32); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_rv);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_rv);
  __Pyx_GIVEREF(__pyx_v_rv);
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_rn);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_rn);
  __Pyx_GIVEREF(__pyx_v_rn);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req_nfv2req");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 304: 
 305:     def _prco_req2req(self, req):
/* "/home/david/coding/yum/yum/depsolve.pyx":305
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 *     def _prco_req2req(self, req):             # <<<<<<<<<<<<<<
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__prco_req2req = {__Pyx_NAMESTR("_prco_req2req"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__prco_req2req, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__prco_req2req(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_req = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__req,0};
  __Pyx_RefNannySetupContext("_prco_req2req");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__req);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_prco_req2req", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_prco_req2req") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_req = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_req = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_prco_req2req", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req2req");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":305
 *         return (rn, flags[rf], version_tuple_to_string(rv))
 * 
 *     def _prco_req2req(self, req):             # <<<<<<<<<<<<<<
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__prco_req2req, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___prco_req2req, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 306:         return self._prco_req_nfv2req(req[0], req[1], req[2])
  /* "/home/david/coding/yum/yum/depsolve.pyx":306
 * 
 *     def _prco_req2req(self, req):
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])             # <<<<<<<<<<<<<<
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req_nfv2req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_req, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_req, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_req, 2, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._prco_req2req");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 307: 
 308:     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):
/* "/home/david/coding/yum/yum/depsolve.pyx":308
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where the requiring
 *            package is installed"""
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromInstalled(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__requiringFromInstalled[] = "processes the dependency resolution for a dep where the requiring \n           package is installed";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromInstalled = {__Pyx_NAMESTR("_requiringFromInstalled"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromInstalled, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__requiringFromInstalled)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromInstalled(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *__pyx_cur_scope;
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_requiringPo = 0;
  PyObject *__pyx_v_requirement = 0;
  PyObject *__pyx_v_errorlist = 0;
  PyObject *__pyx_v_checkdeps;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_arch;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_ver;
  PyObject *__pyx_v_rel;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_needflags;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_niceformatneed;
  PyObject *__pyx_v_needmode;
  PyObject *__pyx_v_needpo;
  PyObject *__pyx_v_providers;
  PyObject *__pyx_v_cheater_po;
  PyObject *__pyx_v_txmbrs;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_inst_po;
  PyObject *__pyx_v_inst_str;
  PyObject *__pyx_v_i_n;
  PyObject *__pyx_v_i_a;
  PyObject *__pyx_v_i_e;
  PyObject *__pyx_v_i_v;
  PyObject *__pyx_v_i_r;
  PyObject *__pyx_v_thismode;
  PyObject *__pyx_v_length;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_reqpkg;
  PyObject *__pyx_v_prob_pkg;
  PyObject *__pyx_v_msg;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__requiringPo,&__pyx_n_s__requirement,&__pyx_n_s__errorlist,0};
  __Pyx_RefNannySetupContext("_requiringFromInstalled");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requiringPo);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requirement);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorlist);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_requiringFromInstalled") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_requiringPo = values[1];
    __pyx_v_requirement = values[2];
    __pyx_v_errorlist = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_requiringPo = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_requirement = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_errorlist = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_requiringFromInstalled", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._requiringFromInstalled");
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_checkdeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missingdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_name = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_arch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_epoch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_ver = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rel = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needname = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needflags = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needversion = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_niceformatneed = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needmode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needpo = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_providers = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_cheater_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbrs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_inst_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_inst_str = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_n = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_a = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_i_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_thismode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_length = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_reqpkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_prob_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_msg = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":308
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where the requiring
 *            package is installed"""
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromInstalled, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s_31, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

/* "/home/david/coding/yum/yum/depsolve.pyx":308
 *         return self._prco_req_nfv2req(req[0], req[1], req[2])
 * 
 *     def _requiringFromInstalled(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where the requiring
 *            package is installed"""
 */

struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled {
  PyObject_HEAD
  PyObject *__pyx_v_arch;
  PyObject *__pyx_v_cheater_po;
  PyObject *__pyx_v_checkdeps;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_errorlist;
  PyObject *__pyx_v_i_a;
  PyObject *__pyx_v_i_e;
  PyObject *__pyx_v_i_n;
  PyObject *__pyx_v_i_r;
  PyObject *__pyx_v_i_v;
  PyObject *__pyx_v_inst_po;
  PyObject *__pyx_v_inst_str;
  PyObject *__pyx_v_length;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_msg;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_needflags;
  PyObject *__pyx_v_needmode;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_needpo;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_niceformatneed;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_prob_pkg;
  PyObject *__pyx_v_providers;
  PyObject *__pyx_v_rel;
  PyObject *__pyx_v_reqpkg;
  PyObject *__pyx_v_requirement;
  PyObject *__pyx_v_requiringPo;
  PyObject *__pyx_v_self;
  PyObject *__pyx_v_thismode;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_txmbrs;
  PyObject *__pyx_v_ver;
};
 309:         """processes the dependency resolution for a dep where the requiring
 310:            package is installed"""
 311: 
 312:         checkdeps = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":312
 *            package is installed"""
 * 
 *         checkdeps = 0             # <<<<<<<<<<<<<<
 *         missingdep = 0
 * 
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_checkdeps);
  __pyx_v_checkdeps = __pyx_int_0;
 313:         missingdep = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":313
 * 
 *         checkdeps = 0
 *         missingdep = 0             # <<<<<<<<<<<<<<
 * 
 *         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_missingdep);
  __pyx_v_missingdep = __pyx_int_0;
 314: 
 315:         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):
  /* "/home/david/coding/yum/yum/depsolve.pyx":315
 *         missingdep = 0
 * 
 *         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {
 316:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":316
 * 
 *         if self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES):
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         name, arch, epoch, ver, rel = requiringPo.pkgtup
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 317: 
 318:         name, arch, epoch, ver, rel = requiringPo.pkgtup
  /* "/home/david/coding/yum/yum/depsolve.pyx":318
 *             return checkdeps, missingdep
 * 
 *         name, arch, epoch, ver, rel = requiringPo.pkgtup             # <<<<<<<<<<<<<<
 * 
 *         needname, needflags, needversion = requirement
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyTuple_CheckExact(__pyx_t_3) && likely(PyTuple_GET_SIZE(__pyx_t_3) == 5)) {
    PyObject* tuple = __pyx_t_3;
    __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_ver);
    __pyx_v_ver = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_rel);
    __pyx_v_rel = __pyx_t_7;
    __pyx_t_7 = 0;
  } else {
    __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_8, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_8, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_8, 2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_8, 3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_8, 4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_EndUnpack(__pyx_t_8, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_ver);
    __pyx_v_ver = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_rel);
    __pyx_v_rel = __pyx_t_7;
    __pyx_t_7 = 0;
  }
 319: 
 320:         needname, needflags, needversion = requirement
  /* "/home/david/coding/yum/yum/depsolve.pyx":320
 *         name, arch, epoch, ver, rel = requiringPo.pkgtup
 * 
 *         needname, needflags, needversion = requirement             # <<<<<<<<<<<<<<
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)
 * 
 */
  if (PyTuple_CheckExact(__pyx_v_requirement) && likely(PyTuple_GET_SIZE(__pyx_v_requirement) == 3)) {
    PyObject* tuple = __pyx_v_requirement;
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_3);
    __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {
    __pyx_t_1 = PyObject_GetIter(__pyx_v_requirement); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_1, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_1, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_1, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_EndUnpack(__pyx_t_1, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_7;
    __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_6;
    __pyx_t_6 = 0;
  }
 321:         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)
  /* "/home/david/coding/yum/yum/depsolve.pyx":321
 * 
 *         needname, needflags, needversion = requirement
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, needflags)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__formatRequire); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __pyx_v_niceformatneed = __pyx_t_3;
  __pyx_t_3 = 0;
 322: 
 323: 
 324:         # we must first find out why the requirement is no longer there
 325:         # we must find out what provides/provided it from the rpmdb (if anything)
 326:         # then check to see if that thing is being acted upon by the transaction set
 327:         # if it is then we need to find out what is being done to it and act accordingly
 328:         needmode = None # mode in the transaction of the needed pkg (if any)
  /* "/home/david/coding/yum/yum/depsolve.pyx":328
 *         # then check to see if that thing is being acted upon by the transaction set
 *         # if it is then we need to find out what is being done to it and act accordingly
 *         needmode = None # mode in the transaction of the needed pkg (if any)             # <<<<<<<<<<<<<<
 *         needpo = None
 *         providers = []
 */
  __Pyx_INCREF(Py_None);
  __Pyx_DECREF(__pyx_v_needmode);
  __pyx_v_needmode = Py_None;
 329:         needpo = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":329
 *         # if it is then we need to find out what is being done to it and act accordingly
 *         needmode = None # mode in the transaction of the needed pkg (if any)
 *         needpo = None             # <<<<<<<<<<<<<<
 *         providers = []
 * 
 */
  __Pyx_INCREF(Py_None);
  __Pyx_DECREF(__pyx_v_needpo);
  __pyx_v_needpo = Py_None;
 330:         providers = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":330
 *         needmode = None # mode in the transaction of the needed pkg (if any)
 *         needpo = None
 *         providers = []             # <<<<<<<<<<<<<<
 * 
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_DECREF(__pyx_v_providers);
  __pyx_v_providers = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
 331: 
 332:         if self.cheaterlookup.has_key((needname, needflags, needversion)):
  /* "/home/david/coding/yum/yum/depsolve.pyx":332
 *         providers = []
 * 
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cheaterlookup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__has_key); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {
 333:             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
    /* "/home/david/coding/yum/yum/depsolve.pyx":333
 * 
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))             # <<<<<<<<<<<<<<
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
 *             providers = [cheater_po]
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_33));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_33));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_33));
    __pyx_t_2 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_7 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 334:             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
    /* "/home/david/coding/yum/yum/depsolve.pyx":334
 *         if self.cheaterlookup.has_key((needname, needflags, needversion)):
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]             # <<<<<<<<<<<<<<
 *             providers = [cheater_po]
 * 
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cheaterlookup); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_needflags);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_needflags);
    __Pyx_GIVEREF(__pyx_v_needflags);
    __Pyx_INCREF(__pyx_v_needversion);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_needversion);
    __Pyx_GIVEREF(__pyx_v_needversion);
    __pyx_t_6 = PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_cheater_po);
    __pyx_v_cheater_po = __pyx_t_6;
    __pyx_t_6 = 0;
 335:             providers = [cheater_po]
    /* "/home/david/coding/yum/yum/depsolve.pyx":335
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require has already been looked up, cheating'))
 *             cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
 *             providers = [cheater_po]             # <<<<<<<<<<<<<<
 * 
 *         elif self.rpmdb.contains(name=needname):
 */
    __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_INCREF(__pyx_v_cheater_po);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_v_cheater_po);
    __Pyx_GIVEREF(__pyx_v_cheater_po);
    __Pyx_DECREF(__pyx_v_providers);
    __pyx_v_providers = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L7;
  }
 336: 
 337:         elif self.rpmdb.contains(name=needname):
  /* "/home/david/coding/yum/yum/depsolve.pyx":337
 *             providers = [cheater_po]
 * 
 *         elif self.rpmdb.contains(name=needname):             # <<<<<<<<<<<<<<
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)
 *             for txmbr in txmbrs:
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__contains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_v_needname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_5) {
 338:             txmbrs = self.tsInfo.matchNaevr(name=needname)
    /* "/home/david/coding/yum/yum/depsolve.pyx":338
 * 
 *         elif self.rpmdb.contains(name=needname):
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)             # <<<<<<<<<<<<<<
 *             for txmbr in txmbrs:
 *                 providers.append(txmbr.po)
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__matchNaevr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_needname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_txmbrs);
    __pyx_v_txmbrs = __pyx_t_1;
    __pyx_t_1 = 0;
 339:             for txmbr in txmbrs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":339
 *         elif self.rpmdb.contains(name=needname):
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)
 *             for txmbr in txmbrs:             # <<<<<<<<<<<<<<
 *                 providers.append(txmbr.po)
 * 
 */
    if (PyList_CheckExact(__pyx_v_txmbrs) || PyTuple_CheckExact(__pyx_v_txmbrs)) {
      __pyx_t_9 = 0; __pyx_t_1 = __pyx_v_txmbrs; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_txmbrs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
    }
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++;
      } else {
        __pyx_t_2 = PyIter_Next(__pyx_t_1);
        if (!__pyx_t_2) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF(__pyx_v_txmbr);
      __pyx_v_txmbr = __pyx_t_2;
      __pyx_t_2 = 0;
 340:                 providers.append(txmbr.po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":340
 *             txmbrs = self.tsInfo.matchNaevr(name=needname)
 *             for txmbr in txmbrs:
 *                 providers.append(txmbr.po)             # <<<<<<<<<<<<<<
 * 
 *         else:
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_providers, __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L7;
  }
  /*else*/ {
 341: 
 342:         else:
 343:             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require is not a package name. Looking up: %s'), niceformatneed)
    /* "/home/david/coding/yum/yum/depsolve.pyx":343
 * 
 *         else:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require is not a package name. Looking up: %s'), niceformatneed)             # <<<<<<<<<<<<<<
 *             providers = self.rpmdb.getProvides(needname, needflags, needversion)
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_34));
    PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_34));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_34));
    __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_niceformatneed);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_niceformatneed);
    __Pyx_GIVEREF(__pyx_v_niceformatneed);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 344:             providers = self.rpmdb.getProvides(needname, needflags, needversion)
    /* "/home/david/coding/yum/yum/depsolve.pyx":344
 *         else:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Needed Require is not a package name. Looking up: %s'), niceformatneed)
 *             providers = self.rpmdb.getProvides(needname, needflags, needversion)             # <<<<<<<<<<<<<<
 * 
 *         for inst_po in providers:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getProvides); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_needflags);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_needflags);
    __Pyx_GIVEREF(__pyx_v_needflags);
    __Pyx_INCREF(__pyx_v_needversion);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_needversion);
    __Pyx_GIVEREF(__pyx_v_needversion);
    __pyx_t_6 = PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_providers);
    __pyx_v_providers = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __pyx_L7:;
 345: 
 346:         for inst_po in providers:
  /* "/home/david/coding/yum/yum/depsolve.pyx":346
 *             providers = self.rpmdb.getProvides(needname, needflags, needversion)
 * 
 *         for inst_po in providers:             # <<<<<<<<<<<<<<
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 */
  if (PyList_CheckExact(__pyx_v_providers) || PyTuple_CheckExact(__pyx_v_providers)) {
    __pyx_t_9 = 0; __pyx_t_6 = __pyx_v_providers; __Pyx_INCREF(__pyx_t_6);
  } else {
    __pyx_t_9 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_providers); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_6))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_6);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_inst_po);
    __pyx_v_inst_po = __pyx_t_3;
    __pyx_t_3 = 0;
 347:             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
    /* "/home/david/coding/yum/yum/depsolve.pyx":347
 * 
 *         for inst_po in providers:
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup             # <<<<<<<<<<<<<<
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_inst_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_35), __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_7));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_inst_str);
    __pyx_v_inst_str = ((PyObject *)__pyx_t_7);
    __pyx_t_7 = 0;
 348:             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
    /* "/home/david/coding/yum/yum/depsolve.pyx":348
 *         for inst_po in providers:
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential Provider: %s'), inst_str)
 */
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_inst_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (PyTuple_CheckExact(__pyx_t_7) && likely(PyTuple_GET_SIZE(__pyx_t_7) == 5)) {
      PyObject* tuple = __pyx_t_7;
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_8 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_v_i_n);
      __pyx_v_i_n = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_i_a);
      __pyx_v_i_a = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_i_e);
      __pyx_v_i_e = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_i_v);
      __pyx_v_i_v = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_i_r);
      __pyx_v_i_r = __pyx_t_8;
      __pyx_t_8 = 0;
    } else {
      __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_10, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_10, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_10, 2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_10, 3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = __Pyx_UnpackItem(__pyx_t_10, 4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      if (__Pyx_EndUnpack(__pyx_t_10, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_v_i_n);
      __pyx_v_i_n = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_i_a);
      __pyx_v_i_a = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_i_e);
      __pyx_v_i_e = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_i_v);
      __pyx_v_i_v = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_i_r);
      __pyx_v_i_r = __pyx_t_8;
      __pyx_t_8 = 0;
    }
 349:             self.verbose_logger.log(logginglevels.DEBUG_2,
    /* "/home/david/coding/yum/yum/depsolve.pyx":349
 *             inst_str = '%s.%s %s:%s-%s' % inst_po.pkgtup
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 *             self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                 _('Potential Provider: %s'), inst_str)
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
 */
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__log); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 350:                 _('Potential Provider: %s'), inst_str)
    /* "/home/david/coding/yum/yum/depsolve.pyx":350
 *             (i_n, i_a, i_e, i_v, i_r) = inst_po.pkgtup
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential Provider: %s'), inst_str)             # <<<<<<<<<<<<<<
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
 *                             epoch=i_e, ver=i_v, rel=i_r)
 */
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_36));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_36));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_36));
    __pyx_t_2 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_inst_str);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_inst_str);
    __Pyx_GIVEREF(__pyx_v_inst_str);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 351:             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
    /* "/home/david/coding/yum/yum/depsolve.pyx":351
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                 _('Potential Provider: %s'), inst_str)
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,             # <<<<<<<<<<<<<<
 *                             epoch=i_e, ver=i_v, rel=i_r)
 * 
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getMode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_i_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__arch), __pyx_v_i_a) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 352:                             epoch=i_e, ver=i_v, rel=i_r)
    /* "/home/david/coding/yum/yum/depsolve.pyx":352
 *                 _('Potential Provider: %s'), inst_str)
 *             thismode = self.tsInfo.getMode(name=i_n, arch=i_a,
 *                             epoch=i_e, ver=i_v, rel=i_r)             # <<<<<<<<<<<<<<
 * 
 *             if thismode is None and i_n in self.conf.exactarchlist:
 */
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__epoch), __pyx_v_i_e) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__ver), __pyx_v_i_v) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__rel), __pyx_v_i_r) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_thismode);
    __pyx_v_thismode = __pyx_t_8;
    __pyx_t_8 = 0;
 353: 
 354:             if thismode is None and i_n in self.conf.exactarchlist:
    /* "/home/david/coding/yum/yum/depsolve.pyx":354
 *                             epoch=i_e, ver=i_v, rel=i_r)
 * 
 *             if thismode is None and i_n in self.conf.exactarchlist:             # <<<<<<<<<<<<<<
 *                 # check for mode by the same name+arch
 *                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)
 */
    __pyx_t_5 = (__pyx_v_thismode == Py_None);
    if (__pyx_t_5) {
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__exactarchlist); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_11 = ((PySequence_Contains(__pyx_t_2, __pyx_v_i_n))); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_12 = __pyx_t_11;
    } else {
      __pyx_t_12 = __pyx_t_5;
    }
    if (__pyx_t_12) {
 355:                 # check for mode by the same name+arch
 356:                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)
      /* "/home/david/coding/yum/yum/depsolve.pyx":356
 *             if thismode is None and i_n in self.conf.exactarchlist:
 *                 # check for mode by the same name+arch
 *                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)             # <<<<<<<<<<<<<<
 * 
 *             if thismode is None and i_n not in self.conf.exactarchlist:
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getMode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_i_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__arch), __pyx_v_i_a) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_8, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_thismode);
      __pyx_v_thismode = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L12;
    }
    __pyx_L12:;
 357: 
 358:             if thismode is None and i_n not in self.conf.exactarchlist:
    /* "/home/david/coding/yum/yum/depsolve.pyx":358
 *                 thismode = self.tsInfo.getMode(name=i_n, arch=i_a)
 * 
 *             if thismode is None and i_n not in self.conf.exactarchlist:             # <<<<<<<<<<<<<<
 *                 # check for mode by just the name
 *                 thismode = self.tsInfo.getMode(name=i_n)
 */
    __pyx_t_12 = (__pyx_v_thismode == Py_None);
    if (__pyx_t_12) {
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conf); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__exactarchlist); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = (__Pyx_NegateNonNeg(PySequence_Contains(__pyx_t_2, __pyx_v_i_n))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = __pyx_t_5;
    } else {
      __pyx_t_11 = __pyx_t_12;
    }
    if (__pyx_t_11) {
 359:                 # check for mode by just the name
 360:                 thismode = self.tsInfo.getMode(name=i_n)
      /* "/home/david/coding/yum/yum/depsolve.pyx":360
 *             if thismode is None and i_n not in self.conf.exactarchlist:
 *                 # check for mode by just the name
 *                 thismode = self.tsInfo.getMode(name=i_n)             # <<<<<<<<<<<<<<
 * 
 *             # if this package is being obsoleted, it's just like if it's
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getMode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_v_i_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_8 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_thismode);
      __pyx_v_thismode = __pyx_t_8;
      __pyx_t_8 = 0;
      goto __pyx_L13;
    }
    __pyx_L13:;
 361: 
 362:             # if this package is being obsoleted, it's just like if it's
 363:             # being upgraded as far as checking for other providers
 364:             if thismode is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":364
 *             # if this package is being obsoleted, it's just like if it's
 *             # being upgraded as far as checking for other providers
 *             if thismode is None:             # <<<<<<<<<<<<<<
 *                 if filter(lambda x: x.obsoleted_by,
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 */
    __pyx_t_11 = (__pyx_v_thismode == Py_None);
    if (__pyx_t_11) {
 365:                 if filter(lambda x: x.obsoleted_by,
/* "/home/david/coding/yum/yum/depsolve.pyx":365
 *             # being upgraded as far as checking for other providers
 *             if thismode is None:
 *                 if filter(lambda x: x.obsoleted_by,             # <<<<<<<<<<<<<<
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 *                     thismode = 'u'
 */

static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/
static PyMethodDef __pyx_lambda_methdef3yum_8depsolve_23_requiringFromInstalled_lambda2 = {__Pyx_NAMESTR("__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2"), (PyCFunction)__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2(PyObject *__pyx_self, PyObject *__pyx_v_x) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__pyx_lambda_funcdef3yum_8depsolve_23_requiringFromInstalled_lambda2");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromInstalled *)__pyx_self;
  __pyx_self = __pyx_self;
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__obsoleted_by); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("yum.depsolve._requiringFromInstalled.lambda2");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

      /* "/home/david/coding/yum/yum/depsolve.pyx":365
 *             # being upgraded as far as checking for other providers
 *             if thismode is None:
 *                 if filter(lambda x: x.obsoleted_by,             # <<<<<<<<<<<<<<
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 *                     thismode = 'u'
 */
      __pyx_t_8 = __pyx_binding_PyCFunctionType_New(&__pyx_lambda_methdef3yum_8depsolve_23_requiringFromInstalled_lambda2, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
 366:                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
      /* "/home/david/coding/yum/yum/depsolve.pyx":366
 *             if thismode is None:
 *                 if filter(lambda x: x.obsoleted_by,
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):             # <<<<<<<<<<<<<<
 *                     thismode = 'u'
 * 
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__matchNaevr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_i_n);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_i_n);
      __Pyx_GIVEREF(__pyx_v_i_n);
      __Pyx_INCREF(__pyx_v_i_a);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_i_a);
      __Pyx_GIVEREF(__pyx_v_i_a);
      __Pyx_INCREF(__pyx_v_i_e);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_i_e);
      __Pyx_GIVEREF(__pyx_v_i_e);
      __Pyx_INCREF(__pyx_v_i_v);
      PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_i_v);
      __Pyx_GIVEREF(__pyx_v_i_v);
      __Pyx_INCREF(__pyx_v_i_r);
      PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_i_r);
      __Pyx_GIVEREF(__pyx_v_i_r);
      __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_8 = 0;
      __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_Call(__pyx_builtin_filter, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_11) {
 367:                     thismode = 'u'
        /* "/home/david/coding/yum/yum/depsolve.pyx":367
 *                 if filter(lambda x: x.obsoleted_by,
 *                           self.tsInfo.matchNaevr(i_n, i_a, i_e, i_v, i_r)):
 *                     thismode = 'u'             # <<<<<<<<<<<<<<
 * 
 *             if thismode is not None:
 */
        __Pyx_INCREF(((PyObject *)__pyx_n_s__u));
        __Pyx_DECREF(__pyx_v_thismode);
        __pyx_v_thismode = ((PyObject *)__pyx_n_s__u);
        goto __pyx_L15;
      }
      __pyx_L15:;
      goto __pyx_L14;
    }
    __pyx_L14:;
 368: 
 369:             if thismode is not None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":369
 *                     thismode = 'u'
 * 
 *             if thismode is not None:             # <<<<<<<<<<<<<<
 *                 needmode = thismode
 * 
 */
    __pyx_t_11 = (__pyx_v_thismode != Py_None);
    if (__pyx_t_11) {
 370:                 needmode = thismode
      /* "/home/david/coding/yum/yum/depsolve.pyx":370
 * 
 *             if thismode is not None:
 *                 needmode = thismode             # <<<<<<<<<<<<<<
 * 
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
 */
      __Pyx_INCREF(__pyx_v_thismode);
      __Pyx_DECREF(__pyx_v_needmode);
      __pyx_v_needmode = __pyx_v_thismode;
 371: 
 372:                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
      /* "/home/david/coding/yum/yum/depsolve.pyx":372
 *                 needmode = thismode
 * 
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
 *                     needmode, niceformatneed, inst_str)
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__cheaterlookup); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_needname);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_needname);
      __Pyx_GIVEREF(__pyx_v_needname);
      __Pyx_INCREF(__pyx_v_needflags);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_needflags);
      __Pyx_GIVEREF(__pyx_v_needflags);
      __Pyx_INCREF(__pyx_v_needversion);
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_needversion);
      __Pyx_GIVEREF(__pyx_v_needversion);
      if (PyObject_SetItem(__pyx_t_4, __pyx_t_2, __pyx_v_inst_po) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 373:                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
      /* "/home/david/coding/yum/yum/depsolve.pyx":373
 * 
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),             # <<<<<<<<<<<<<<
 *                     needmode, niceformatneed, inst_str)
 *                 break
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_37));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_37));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_37));
      __pyx_t_7 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 374:                     needmode, niceformatneed, inst_str)
      /* "/home/david/coding/yum/yum/depsolve.pyx":374
 *                 self.cheaterlookup[(needname, needflags, needversion)] = inst_po
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
 *                     needmode, niceformatneed, inst_str)             # <<<<<<<<<<<<<<
 *                 break
 * 
 */
      __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_needmode);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_needmode);
      __Pyx_GIVEREF(__pyx_v_needmode);
      __Pyx_INCREF(__pyx_v_niceformatneed);
      PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_niceformatneed);
      __Pyx_GIVEREF(__pyx_v_niceformatneed);
      __Pyx_INCREF(__pyx_v_inst_str);
      PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_inst_str);
      __Pyx_GIVEREF(__pyx_v_inst_str);
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 375:                 break
      /* "/home/david/coding/yum/yum/depsolve.pyx":375
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode is %s for provider of %s: %s'),
 *                     needmode, niceformatneed, inst_str)
 *                 break             # <<<<<<<<<<<<<<
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),
 */
      goto __pyx_L11_break;
      goto __pyx_L16;
    }
    __pyx_L16:;
  }
  __pyx_L11_break:;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 376: 
 377:         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),
  /* "/home/david/coding/yum/yum/depsolve.pyx":377
 *                 break
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),             # <<<<<<<<<<<<<<
 *             niceformatneed, needmode)
 * 
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_38));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_38));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_38));
  __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 378:             niceformatneed, needmode)
  /* "/home/david/coding/yum/yum/depsolve.pyx":378
 * 
 *         self.verbose_logger.log(logginglevels.DEBUG_2, _('Mode for pkg providing %s: %s'),
 *             niceformatneed, needmode)             # <<<<<<<<<<<<<<
 * 
 *         if needmode in ['e']:
 */
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_niceformatneed);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_niceformatneed);
  __Pyx_GIVEREF(__pyx_v_niceformatneed);
  __Pyx_INCREF(__pyx_v_needmode);
  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_needmode);
  __Pyx_GIVEREF(__pyx_v_needmode);
  __pyx_t_1 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 379: 
 380:         if needmode in ['e']:
  /* "/home/david/coding/yum/yum/depsolve.pyx":380
 *             niceformatneed, needmode)
 * 
 *         if needmode in ['e']:             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
 *                 requiringPo, needname)
 */
  __Pyx_INCREF(__pyx_v_needmode);
  __pyx_t_8 = __pyx_v_needmode;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_8, ((PyObject *)__pyx_n_s__e), Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_12 = __pyx_t_11;
  if (__pyx_t_12) {
 381:             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
    /* "/home/david/coding/yum/yum/depsolve.pyx":381
 * 
 *         if needmode in ['e']:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),             # <<<<<<<<<<<<<<
 *                 requiringPo, needname)
 *             txmbr = self.tsInfo.addErase(requiringPo)
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_39));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_39));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_39));
    __pyx_t_6 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 382:                 requiringPo, needname)
    /* "/home/david/coding/yum/yum/depsolve.pyx":382
 *         if needmode in ['e']:
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
 *                 requiringPo, needname)             # <<<<<<<<<<<<<<
 *             txmbr = self.tsInfo.addErase(requiringPo)
 *             txmbr.setAsDep(po=inst_po)
 */
    __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __pyx_t_7 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 383:             txmbr = self.tsInfo.addErase(requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":383
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: %s package requiring %s marked as erase'),
 *                 requiringPo, needname)
 *             txmbr = self.tsInfo.addErase(requiringPo)             # <<<<<<<<<<<<<<
 *             txmbr.setAsDep(po=inst_po)
 *             checkdeps = 1
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__addErase); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_4;
    __pyx_t_4 = 0;
 384:             txmbr.setAsDep(po=inst_po)
    /* "/home/david/coding/yum/yum/depsolve.pyx":384
 *                 requiringPo, needname)
 *             txmbr = self.tsInfo.addErase(requiringPo)
 *             txmbr.setAsDep(po=inst_po)             # <<<<<<<<<<<<<<
 *             checkdeps = 1
 * 
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__setAsDep); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__po), __pyx_v_inst_po) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 385:             checkdeps = 1
    /* "/home/david/coding/yum/yum/depsolve.pyx":385
 *             txmbr = self.tsInfo.addErase(requiringPo)
 *             txmbr.setAsDep(po=inst_po)
 *             checkdeps = 1             # <<<<<<<<<<<<<<
 * 
 *         if needmode in ['i', 'u']:
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF(__pyx_v_checkdeps);
    __pyx_v_checkdeps = __pyx_int_1;
    goto __pyx_L17;
  }
  __pyx_L17:;
 386: 
 387:         if needmode in ['i', 'u']:
  /* "/home/david/coding/yum/yum/depsolve.pyx":387
 *             checkdeps = 1
 * 
 *         if needmode in ['i', 'u']:             # <<<<<<<<<<<<<<
 *             length = len(self.tsInfo)
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 */
  __Pyx_INCREF(__pyx_v_needmode);
  __pyx_t_1 = __pyx_v_needmode;
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__i), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_11 = __pyx_t_12;
  if (!__pyx_t_11) {
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_5 = __pyx_t_12;
    __pyx_t_12 = __pyx_t_5;
  } else {
    __pyx_t_12 = __pyx_t_11;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_11 = __pyx_t_12;
  if (__pyx_t_11) {
 388:             length = len(self.tsInfo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":388
 * 
 *         if needmode in ['i', 'u']:
 *             length = len(self.tsInfo)             # <<<<<<<<<<<<<<
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 *                         requiringPo=requiringPo)
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_length);
    __pyx_v_length = __pyx_t_1;
    __pyx_t_1 = 0;
 389:             self.update(name=name, epoch=epoch, version=ver, release=rel,
    /* "/home/david/coding/yum/yum/depsolve.pyx":389
 *         if needmode in ['i', 'u']:
 *             length = len(self.tsInfo)
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,             # <<<<<<<<<<<<<<
 *                         requiringPo=requiringPo)
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__epoch), __pyx_v_epoch) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__version), __pyx_v_ver) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__release), __pyx_v_rel) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 390:                         requiringPo=requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":390
 *             length = len(self.tsInfo)
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 *                         requiringPo=requiringPo)             # <<<<<<<<<<<<<<
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 */
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__requiringPo), __pyx_v_requiringPo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 391:             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
    /* "/home/david/coding/yum/yum/depsolve.pyx":391
 *             self.update(name=name, epoch=epoch, version=ver, release=rel,
 *                         requiringPo=requiringPo)
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)             # <<<<<<<<<<<<<<
 *             if len(self.tsInfo) != length and txmbrs:
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_txmbrs);
    __pyx_v_txmbrs = __pyx_t_1;
    __pyx_t_1 = 0;
 392:             if len(self.tsInfo) != length and txmbrs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":392
 *                         requiringPo=requiringPo)
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:             # <<<<<<<<<<<<<<
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_9); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_v_length, Py_NE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_11) {
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_v_txmbrs); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_5 = __pyx_t_12;
    } else {
      __pyx_t_5 = __pyx_t_11;
    }
    if (__pyx_t_5) {
 393:                 if txmbrs[0].output_state == TS_OBSOLETED:
      /* "/home/david/coding/yum/yum/depsolve.pyx":393
 *             txmbrs = self.tsInfo.getMembersWithState(requiringPo.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 *                 if txmbrs[0].output_state == TS_OBSOLETED:             # <<<<<<<<<<<<<<
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])
 */
      __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_txmbrs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__output_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_OBSOLETED); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_5) {
 394:                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
        /* "/home/david/coding/yum/yum/depsolve.pyx":394
 *             if len(self.tsInfo) != length and txmbrs:
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),             # <<<<<<<<<<<<<<
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])
 *                 else:
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_40));
        PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_40));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_40));
        __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 395:                                             requiringPo, txmbrs[0].obsoleted_by[0])
        /* "/home/david/coding/yum/yum/depsolve.pyx":395
 *                 if txmbrs[0].output_state == TS_OBSOLETED:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Obsoleting %s with %s to resolve dep.'),
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])             # <<<<<<<<<<<<<<
 *                 else:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Updating %s to resolve dep.'), requiringPo)
 */
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_txmbrs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__obsoleted_by); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_requiringPo);
        PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_requiringPo);
        __Pyx_GIVEREF(__pyx_v_requiringPo);
        PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_1 = 0;
        __pyx_t_8 = 0;
        __pyx_t_4 = 0;
        __pyx_t_4 = PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L20;
      }
      /*else*/ {
 396:                 else:
 397:                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Updating %s to resolve dep.'), requiringPo)
        /* "/home/david/coding/yum/yum/depsolve.pyx":397
 *                                             requiringPo, txmbrs[0].obsoleted_by[0])
 *                 else:
 *                     self.verbose_logger.log(logginglevels.DEBUG_2, _('TSINFO: Updating %s to resolve dep.'), requiringPo)             # <<<<<<<<<<<<<<
 *                     # If the requirement is still there, try and solve it again
 *                     # so we don't lose it
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_41));
        PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_kp_s_41));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_41));
        __pyx_t_1 = PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_requiringPo);
        PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_requiringPo);
        __Pyx_GIVEREF(__pyx_v_requiringPo);
        __pyx_t_7 = 0;
        __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 398:                     # If the requirement is still there, try and solve it again
 399:                     # so we don't lose it
 400:                     for pkg in txmbrs[0].updated_by:
        /* "/home/david/coding/yum/yum/depsolve.pyx":400
 *                     # If the requirement is still there, try and solve it again
 *                     # so we don't lose it
 *                     for pkg in txmbrs[0].updated_by:             # <<<<<<<<<<<<<<
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 */
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_txmbrs, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__updated_by); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (PyList_CheckExact(__pyx_t_8) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_9 = 0; __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1);
        } else {
          __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++;
          } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++;
          } else {
            __pyx_t_8 = PyIter_Next(__pyx_t_1);
            if (!__pyx_t_8) {
              if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_DECREF(__pyx_v_pkg);
          __pyx_v_pkg = __pyx_t_8;
          __pyx_t_8 = 0;
 401:                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
          /* "/home/david/coding/yum/yum/depsolve.pyx":401
 *                     # so we don't lose it
 *                     for pkg in txmbrs[0].updated_by:
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):             # <<<<<<<<<<<<<<
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 *                 checkdeps = True
 */
          __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req2req); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_INCREF(((PyObject *)__pyx_n_s__requires));
          PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_s__requires));
          __Pyx_GIVEREF(((PyObject *)__pyx_n_s__requires));
          __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_4);
          __pyx_t_8 = 0;
          __pyx_t_4 = 0;
          __pyx_t_4 = PyObject_Call(__pyx_builtin_map, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_5 = ((PySequence_Contains(__pyx_t_4, __pyx_v_requirement))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (__pyx_t_5) {
 402:                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
            /* "/home/david/coding/yum/yum/depsolve.pyx":402
 *                     for pkg in txmbrs[0].updated_by:
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]             # <<<<<<<<<<<<<<
 *                 checkdeps = True
 *                 return checkdeps, missingdep
 */
            __Pyx_XDECREF(__pyx_r);
            __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_INCREF(__pyx_v_pkg);
            PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pkg);
            __Pyx_GIVEREF(__pyx_v_pkg);
            __Pyx_INCREF(__pyx_v_requirement);
            PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_requirement);
            __Pyx_GIVEREF(__pyx_v_requirement);
            __Pyx_INCREF(__pyx_v_errorlist);
            PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_errorlist);
            __Pyx_GIVEREF(__pyx_v_errorlist);
            __pyx_t_6 = PyObject_Call(__pyx_t_7, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_6, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = PyNumber_Add(__pyx_v_missingdep, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_8);
            PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6);
            __Pyx_GIVEREF(__pyx_t_6);
            __pyx_t_4 = 0;
            __pyx_t_6 = 0;
            __pyx_r = __pyx_t_8;
            __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            goto __pyx_L0;
            goto __pyx_L23;
          }
          __pyx_L23:;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_L20:;
 403:                 checkdeps = True
      /* "/home/david/coding/yum/yum/depsolve.pyx":403
 *                         if requirement in map(self._prco_req2req, pkg.returnPrco('requires')):
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 *                 checkdeps = True             # <<<<<<<<<<<<<<
 *                 return checkdeps, missingdep
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_checkdeps);
      __pyx_v_checkdeps = __pyx_t_1;
      __pyx_t_1 = 0;
 404:                 return checkdeps, missingdep
      /* "/home/david/coding/yum/yum/depsolve.pyx":404
 *                             return True, missingdep + self._requiringFromTransaction(pkg, requirement, errorlist)[1]
 *                 checkdeps = True
 *                 return checkdeps, missingdep             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
 *             return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_checkdeps);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_checkdeps);
      __Pyx_GIVEREF(__pyx_v_checkdeps);
      __Pyx_INCREF(__pyx_v_missingdep);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_missingdep);
      __Pyx_GIVEREF(__pyx_v_missingdep);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
      goto __pyx_L19;
    }
    __pyx_L19:;
 405:             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
    /* "/home/david/coding/yum/yum/depsolve.pyx":405
 *                 checkdeps = True
 *                 return checkdeps, missingdep
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)             # <<<<<<<<<<<<<<
 *             return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 * 
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_42));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_42));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_42));
    __pyx_t_7 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v_niceformatneed);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_niceformatneed);
    __Pyx_GIVEREF(__pyx_v_niceformatneed);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 406:             return self._requiringFromTransaction(requiringPo, requirement, errorlist)
    /* "/home/david/coding/yum/yum/depsolve.pyx":406
 *                 return checkdeps, missingdep
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _('Cannot find an update path for dep for: %s'), niceformatneed)
 *             return self._requiringFromTransaction(requiringPo, requirement, errorlist)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __Pyx_INCREF(__pyx_v_requirement);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_requirement);
    __Pyx_GIVEREF(__pyx_v_requirement);
    __Pyx_INCREF(__pyx_v_errorlist);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_errorlist);
    __Pyx_GIVEREF(__pyx_v_errorlist);
    __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
    goto __pyx_L18;
  }
  __pyx_L18:;
 407: 
 408: 
 409:         if needmode is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":409
 * 
 * 
 *         if needmode is None:             # <<<<<<<<<<<<<<
 *             reqpkg = (name, ver, rel, None)
 *             if self.pkgSack is None:
 */
  __pyx_t_5 = (__pyx_v_needmode == Py_None);
  if (__pyx_t_5) {
 410:             reqpkg = (name, ver, rel, None)
    /* "/home/david/coding/yum/yum/depsolve.pyx":410
 * 
 *         if needmode is None:
 *             reqpkg = (name, ver, rel, None)             # <<<<<<<<<<<<<<
 *             if self.pkgSack is None:
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 */
    __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_ver);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_ver);
    __Pyx_GIVEREF(__pyx_v_ver);
    __Pyx_INCREF(__pyx_v_rel);
    PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_rel);
    __Pyx_GIVEREF(__pyx_v_rel);
    __Pyx_INCREF(Py_None);
    PyTuple_SET_ITEM(__pyx_t_8, 3, Py_None);
    __Pyx_GIVEREF(Py_None);
    __Pyx_DECREF(__pyx_v_reqpkg);
    __pyx_v_reqpkg = __pyx_t_8;
    __pyx_t_8 = 0;
 411:             if self.pkgSack is None:
    /* "/home/david/coding/yum/yum/depsolve.pyx":411
 *         if needmode is None:
 *             reqpkg = (name, ver, rel, None)
 *             if self.pkgSack is None:             # <<<<<<<<<<<<<<
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 *             else:
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__pkgSack); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_5 = (__pyx_t_8 == Py_None);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_5) {
 412:                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
      /* "/home/david/coding/yum/yum/depsolve.pyx":412
 *             reqpkg = (name, ver, rel, None)
 *             if self.pkgSack is None:
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)             # <<<<<<<<<<<<<<
 *             else:
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_30); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_requiringPo);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_requiringPo);
      __Pyx_GIVEREF(__pyx_v_requiringPo);
      __Pyx_INCREF(__pyx_v_requirement);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_requirement);
      __Pyx_GIVEREF(__pyx_v_requirement);
      __Pyx_INCREF(__pyx_v_errorlist);
      PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_errorlist);
      __Pyx_GIVEREF(__pyx_v_errorlist);
      __pyx_t_7 = PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_r = __pyx_t_7;
      __pyx_t_7 = 0;
      goto __pyx_L0;
      goto __pyx_L25;
    }
    /*else*/ {
 413:             else:
 414:                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
      /* "/home/david/coding/yum/yum/depsolve.pyx":414
 *                 return self._requiringFromTransaction(requiringPo, requirement, errorlist)
 *             else:
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)             # <<<<<<<<<<<<<<
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
 *                                                                prob_pkg)
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__repoid); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_requiringPo);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_requiringPo);
      __Pyx_GIVEREF(__pyx_v_requiringPo);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), __pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_7));
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_prob_pkg);
      __pyx_v_prob_pkg = ((PyObject *)__pyx_t_7);
      __pyx_t_7 = 0;
 415:                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
      /* "/home/david/coding/yum/yum/depsolve.pyx":415
 *             else:
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,             # <<<<<<<<<<<<<<
 *                                                                prob_pkg)
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 */
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_44));
      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_44));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_44));
      __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 416:                                                                prob_pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":416
 *                 prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
 *                                                                prob_pkg)             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                 checkdeps = 0
 */
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_niceformatneed);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_niceformatneed);
      __Pyx_GIVEREF(__pyx_v_niceformatneed);
      __Pyx_INCREF(__pyx_v_prob_pkg);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_prob_pkg);
      __Pyx_GIVEREF(__pyx_v_prob_pkg);
      __pyx_t_7 = PyNumber_Remainder(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_msg);
      __pyx_v_msg = __pyx_t_7;
      __pyx_t_7 = 0;
 417:                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":417
 *                 msg = _('Unresolvable requirement %s for %s') % (niceformatneed,
 *                                                                prob_pkg)
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)             # <<<<<<<<<<<<<<
 *                 checkdeps = 0
 *                 missingdep = 1
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_msg);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_msg);
      __Pyx_GIVEREF(__pyx_v_msg);
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 418:                 checkdeps = 0
      /* "/home/david/coding/yum/yum/depsolve.pyx":418
 *                                                                prob_pkg)
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                 checkdeps = 0             # <<<<<<<<<<<<<<
 *                 missingdep = 1
 *                 errorlist.append(msg)
 */
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF(__pyx_v_checkdeps);
      __pyx_v_checkdeps = __pyx_int_0;
 419:                 missingdep = 1
      /* "/home/david/coding/yum/yum/depsolve.pyx":419
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                 checkdeps = 0
 *                 missingdep = 1             # <<<<<<<<<<<<<<
 *                 errorlist.append(msg)
 * 
 */
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF(__pyx_v_missingdep);
      __pyx_v_missingdep = __pyx_int_1;
 420:                 errorlist.append(msg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":420
 *                 checkdeps = 0
 *                 missingdep = 1
 *                 errorlist.append(msg)             # <<<<<<<<<<<<<<
 * 
 *         return checkdeps, missingdep
 */
      __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_errorlist, __pyx_v_msg); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __pyx_L25:;
    goto __pyx_L24;
  }
  __pyx_L24:;
 421: 
 422:         return checkdeps, missingdep
  /* "/home/david/coding/yum/yum/depsolve.pyx":422
 *                 errorlist.append(msg)
 * 
 *         return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *     def _quickWhatProvides(self, name, flags, version):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_checkdeps);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_checkdeps);
  __Pyx_GIVEREF(__pyx_v_checkdeps);
  __Pyx_INCREF(__pyx_v_missingdep);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_missingdep);
  __Pyx_GIVEREF(__pyx_v_missingdep);
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._requiringFromInstalled");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_checkdeps);
  __Pyx_DECREF(__pyx_v_missingdep);
  __Pyx_DECREF(__pyx_v_name);
  __Pyx_DECREF(__pyx_v_arch);
  __Pyx_DECREF(__pyx_v_epoch);
  __Pyx_DECREF(__pyx_v_ver);
  __Pyx_DECREF(__pyx_v_rel);
  __Pyx_DECREF(__pyx_v_needname);
  __Pyx_DECREF(__pyx_v_needflags);
  __Pyx_DECREF(__pyx_v_needversion);
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __Pyx_DECREF(__pyx_v_needmode);
  __Pyx_DECREF(__pyx_v_needpo);
  __Pyx_DECREF(__pyx_v_providers);
  __Pyx_DECREF(__pyx_v_cheater_po);
  __Pyx_DECREF(__pyx_v_txmbrs);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_inst_po);
  __Pyx_DECREF(__pyx_v_inst_str);
  __Pyx_DECREF(__pyx_v_i_n);
  __Pyx_DECREF(__pyx_v_i_a);
  __Pyx_DECREF(__pyx_v_i_e);
  __Pyx_DECREF(__pyx_v_i_v);
  __Pyx_DECREF(__pyx_v_i_r);
  __Pyx_DECREF(__pyx_v_thismode);
  __Pyx_DECREF(__pyx_v_length);
  __Pyx_DECREF(__pyx_v_pkg);
  __Pyx_DECREF(__pyx_v_reqpkg);
  __Pyx_DECREF(__pyx_v_prob_pkg);
  __Pyx_DECREF(__pyx_v_msg);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 423: 
 424:     def _quickWhatProvides(self, name, flags, version):
/* "/home/david/coding/yum/yum/depsolve.pyx":424
 *         return checkdeps, missingdep
 * 
 *     def _quickWhatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         if self._last_req is None:
 *             return False
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__quickWhatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__quickWhatProvides = {__Pyx_NAMESTR("_quickWhatProvides"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__quickWhatProvides, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__quickWhatProvides(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_flags = 0;
  PyObject *__pyx_v_version = 0;
  PyObject *__pyx_v_r_e;
  PyObject *__pyx_v_r_v;
  PyObject *__pyx_v_r_r;
  PyObject *__pyx_v_po;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__name,&__pyx_n_s__flags,&__pyx_n_s__version,0};
  __Pyx_RefNannySetupContext("_quickWhatProvides");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__flags);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__version);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_quickWhatProvides") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_name = values[1];
    __pyx_v_flags = values[2];
    __pyx_v_version = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_name = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_flags = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_version = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_quickWhatProvides", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._quickWhatProvides");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_flags);
  __pyx_v_r_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":424
 *         return checkdeps, missingdep
 * 
 *     def _quickWhatProvides(self, name, flags, version):             # <<<<<<<<<<<<<<
 *         if self._last_req is None:
 *             return False
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__quickWhatProvides, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___quickWhatProvides, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 425:         if self._last_req is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":425
 * 
 *     def _quickWhatProvides(self, name, flags, version):
 *         if self._last_req is None:             # <<<<<<<<<<<<<<
 *             return False
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___last_req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
 426:             return False
    /* "/home/david/coding/yum/yum/depsolve.pyx":426
 *     def _quickWhatProvides(self, name, flags, version):
 *         if self._last_req is None:
 *             return False             # <<<<<<<<<<<<<<
 * 
 *         if flags == 0:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 427: 
 428:         if flags == 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":428
 *             return False
 * 
 *         if flags == 0:             # <<<<<<<<<<<<<<
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_flags, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
 429:             flags = None
    /* "/home/david/coding/yum/yum/depsolve.pyx":429
 * 
 *         if flags == 0:
 *             flags = None             # <<<<<<<<<<<<<<
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 */
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = Py_None;
    goto __pyx_L7;
  }
  __pyx_L7:;
 430:         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
  /* "/home/david/coding/yum/yum/depsolve.pyx":430
 *         if flags == 0:
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_1 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__StringType); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = __pyx_t_2;
  if (!__pyx_t_5) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__NoneType); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __pyx_t_2;
    __pyx_t_2 = __pyx_t_6;
  } else {
    __pyx_t_2 = __pyx_t_5;
  }
  if (!__pyx_t_2) {
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__UnicodeType); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_t_1), __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __pyx_t_5;
    __pyx_t_5 = __pyx_t_6;
  } else {
    __pyx_t_5 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_5;
  if (__pyx_t_2) {
 431:             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
    /* "/home/david/coding/yum/yum/depsolve.pyx":431
 *             flags = None
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)             # <<<<<<<<<<<<<<
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version
 */
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__stringToVersion); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_version);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_version);
    __Pyx_GIVEREF(__pyx_v_version);
    __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 3)) {
      PyObject* tuple = __pyx_t_4;
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_7;
      __pyx_t_7 = 0;
    } else {
      __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_8, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_8, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_8, 2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_EndUnpack(__pyx_t_8, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_7;
      __pyx_t_7 = 0;
    }
    goto __pyx_L8;
  }
 432:         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
  /* "/home/david/coding/yum/yum/depsolve.pyx":432
 *         if type(version) in (types.StringType, types.NoneType, types.UnicodeType):
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?             # <<<<<<<<<<<<<<
 *             (r_e, r_v, r_r) = version
 * 
 */
  __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_version)));
  __pyx_t_4 = ((PyObject *)Py_TYPE(__pyx_v_version));
  __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__TupleType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_t_4), __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_5 = __pyx_t_2;
  if (!__pyx_t_5) {
    __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__types); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__ListType); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_RichCompare(((PyObject *)__pyx_t_4), __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_6 = __pyx_t_2;
    __pyx_t_2 = __pyx_t_6;
  } else {
    __pyx_t_2 = __pyx_t_5;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_5 = __pyx_t_2;
  if (__pyx_t_5) {
 433:             (r_e, r_v, r_r) = version
    /* "/home/david/coding/yum/yum/depsolve.pyx":433
 *             (r_e, r_v, r_r) = rpmUtils.miscutils.stringToVersion(version)
 *         elif type(version) in (types.TupleType, types.ListType): # would this ever be a ListType?
 *             (r_e, r_v, r_r) = version             # <<<<<<<<<<<<<<
 * 
 *         # Quick lookup, lots of reqs for one pkg:
 */
    if (PyTuple_CheckExact(__pyx_v_version) && likely(PyTuple_GET_SIZE(__pyx_v_version) == 3)) {
      PyObject* tuple = __pyx_v_version;
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
      __pyx_t_1 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_7;
      __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_1;
      __pyx_t_1 = 0;
    } else {
      __pyx_t_3 = PyObject_GetIter(__pyx_v_version); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_3, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_3, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_3, 2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_EndUnpack(__pyx_t_3, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_r_e);
      __pyx_v_r_e = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_r_v);
      __pyx_v_r_v = __pyx_t_7;
      __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_v_r_r);
      __pyx_v_r_r = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    goto __pyx_L8;
  }
  __pyx_L8:;
 434: 
 435:         # Quick lookup, lots of reqs for one pkg:
 436:         po = self._last_req
  /* "/home/david/coding/yum/yum/depsolve.pyx":436
 * 
 *         # Quick lookup, lots of reqs for one pkg:
 *         po = self._last_req             # <<<<<<<<<<<<<<
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___last_req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_po);
  __pyx_v_po = __pyx_t_1;
  __pyx_t_1 = 0;
 437:         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
  /* "/home/david/coding/yum/yum/depsolve.pyx":437
 *         # Quick lookup, lots of reqs for one pkg:
 *         po = self._last_req
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):             # <<<<<<<<<<<<<<
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 *             return True
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__checkPrco); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_r_e);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_r_e);
  __Pyx_GIVEREF(__pyx_v_r_e);
  __Pyx_INCREF(__pyx_v_r_v);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_r_v);
  __Pyx_GIVEREF(__pyx_v_r_v);
  __Pyx_INCREF(__pyx_v_r_r);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_r_r);
  __Pyx_GIVEREF(__pyx_v_r_r);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __Pyx_INCREF(__pyx_v_flags);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_flags);
  __Pyx_GIVEREF(__pyx_v_flags);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__provides));
  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_s__provides));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__provides));
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_5) {
 438:             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
    /* "/home/david/coding/yum/yum/depsolve.pyx":438
 *         po = self._last_req
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)             # <<<<<<<<<<<<<<
 *             return True
 *         return False
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__debug); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_45));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_45));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_45));
    __pyx_t_3 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_po);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_po);
    __Pyx_GIVEREF(__pyx_v_po);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 439:             return True
    /* "/home/david/coding/yum/yum/depsolve.pyx":439
 *         if po.checkPrco('provides', (name, flags, (r_e, r_v, r_r))):
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 *             return True             # <<<<<<<<<<<<<<
 *         return False
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L9;
  }
  __pyx_L9:;
 440:         return False
  /* "/home/david/coding/yum/yum/depsolve.pyx":440
 *             self.verbose_logger.debug(_('Quick matched %s to require for %s'), po, name)
 *             return True
 *         return False             # <<<<<<<<<<<<<<
 * 
 *     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._quickWhatProvides");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_r_e);
  __Pyx_DECREF(__pyx_v_r_v);
  __Pyx_DECREF(__pyx_v_r_r);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_flags);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 441: 
 442:     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):
/* "/home/david/coding/yum/yum/depsolve.pyx":442
 *         return False
 * 
 *     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where requiring
 *            package is in the transaction set"""
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromTransaction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__requiringFromTransaction[] = "processes the dependency resolution for a dep where requiring \n           package is in the transaction set";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromTransaction = {__Pyx_NAMESTR("_requiringFromTransaction"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromTransaction, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__requiringFromTransaction)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__requiringFromTransaction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction *__pyx_cur_scope;
  PyObject *__pyx_v_requiringPo = 0;
  PyObject *__pyx_v_requirement = 0;
  PyObject *__pyx_v_errorlist = 0;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_arch;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_version;
  PyObject *__pyx_v_release;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_needflags;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_checkdeps;
  PyObject *__pyx_v_missingdep;
  PyObject *__pyx_v_upgraded;
  PyObject *__pyx_v_provSack;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_tspkgs;
  PyObject *__pyx_v_tspkg;
  PyObject *__pyx_v_msg;
  PyObject *__pyx_v_dbpkgs;
  PyObject *__pyx_v_dbpkg;
  PyObject *__pyx_v_prob_pkg;
  PyObject *__pyx_v_n;
  PyObject *__pyx_v_a;
  PyObject *__pyx_v_e;
  PyObject *__pyx_v_v;
  PyObject *__pyx_v_r;
  PyObject *__pyx_v_pkgmode;
  PyObject *__pyx_v_results;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_newest;
  PyObject *__pyx_v_pkgresults;
  PyObject *__pyx_v_best;
  PyObject *__pyx_v_inst;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__requiringPo,&__pyx_n_s__requirement,&__pyx_n_s__errorlist,0};
  __Pyx_RefNannySetupContext("_requiringFromTransaction");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requiringPo);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requirement);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errorlist);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_requiringFromTransaction") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_cur_scope->__pyx_v_self = values[0];
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_requiringPo = values[1];
    __pyx_v_requirement = values[2];
    __pyx_v_errorlist = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_cur_scope->__pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_requiringPo = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_requirement = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_errorlist = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_requiringFromTransaction", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._requiringFromTransaction");
  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_self = 0;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_name = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_arch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_epoch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_version = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_release = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needname = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needflags = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needversion = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_checkdeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missingdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_upgraded = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_provSack = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_tspkgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_tspkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_msg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_dbpkgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_dbpkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_prob_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_n = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_a = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_e = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkgmode = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_results = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_newest = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkgresults = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_best = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_inst = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":442
 *         return False
 * 
 *     def _requiringFromTransaction(self, requiringPo, requirement, errorlist):             # <<<<<<<<<<<<<<
 *         """processes the dependency resolution for a dep where requiring
 *            package is in the transaction set"""
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__requiringFromTransaction, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s_30, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 443:         """processes the dependency resolution for a dep where requiring
 444:            package is in the transaction set"""
 445: 
 446:         (name, arch, epoch, version, release) = requiringPo.pkgtup
  /* "/home/david/coding/yum/yum/depsolve.pyx":446
 *            package is in the transaction set"""
 * 
 *         (name, arch, epoch, version, release) = requiringPo.pkgtup             # <<<<<<<<<<<<<<
 *         (needname, needflags, needversion) = requirement
 *         checkdeps = 0
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 5)) {
    PyObject* tuple = __pyx_t_1;
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_version);
    __pyx_v_version = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_release);
    __pyx_v_release = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {
    __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_7, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_7, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_7, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_7, 3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_7, 4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_EndUnpack(__pyx_t_7, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_3;
    __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_version);
    __pyx_v_version = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_release);
    __pyx_v_release = __pyx_t_6;
    __pyx_t_6 = 0;
  }
 447:         (needname, needflags, needversion) = requirement
  /* "/home/david/coding/yum/yum/depsolve.pyx":447
 * 
 *         (name, arch, epoch, version, release) = requiringPo.pkgtup
 *         (needname, needflags, needversion) = requirement             # <<<<<<<<<<<<<<
 *         checkdeps = 0
 *         missingdep = 0
 */
  if (PyTuple_CheckExact(__pyx_v_requirement) && likely(PyTuple_GET_SIZE(__pyx_v_requirement) == 3)) {
    PyObject* tuple = __pyx_v_requirement;
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_5;
    __pyx_t_5 = 0;
  } else {
    __pyx_t_4 = PyObject_GetIter(__pyx_v_requirement); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_needflags);
    __pyx_v_needflags = __pyx_t_6;
    __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_5;
    __pyx_t_5 = 0;
  }
 448:         checkdeps = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":448
 *         (name, arch, epoch, version, release) = requiringPo.pkgtup
 *         (needname, needflags, needversion) = requirement
 *         checkdeps = 0             # <<<<<<<<<<<<<<
 *         missingdep = 0
 *         upgraded = {}
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_checkdeps);
  __pyx_v_checkdeps = __pyx_int_0;
 449:         missingdep = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":449
 *         (needname, needflags, needversion) = requirement
 *         checkdeps = 0
 *         missingdep = 0             # <<<<<<<<<<<<<<
 *         upgraded = {}
 * 
 */
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF(__pyx_v_missingdep);
  __pyx_v_missingdep = __pyx_int_0;
 450:         upgraded = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":450
 *         checkdeps = 0
 *         missingdep = 0
 *         upgraded = {}             # <<<<<<<<<<<<<<
 * 
 *         #~ - if it's not available from some repository:
 */
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __Pyx_DECREF(__pyx_v_upgraded);
  __pyx_v_upgraded = ((PyObject *)__pyx_t_5);
  __pyx_t_5 = 0;
 451: 
 452:         #~ - if it's not available from some repository:
 453:         #~     - mark as unresolveable.
 454:         #
 455:         #~ - if it's available from some repo:
 456:         #~    - if there is an another version of the package currently installed then
 457:         #        - if the other version is marked in the transaction set
 458:         #           - if it's marked as erase
 459:         #              - mark the dep as unresolveable
 460: 
 461:         #           - if it's marked as update or install
 462:         #              - check if the version for this requirement:
 463:         #                  - if it is higher
 464:         #                       - mark this version to be updated/installed
 465:         #                       - remove the other version from the transaction set
 466:         #                       - tell the transaction set to be rebuilt
 467:         #                  - if it is lower
 468:         #                       - mark the dep as unresolveable
 469:         #                   - if they are the same
 470:         #                       - be confused but continue
 471: 
 472:         if self._quickWhatProvides(needname, needflags, needversion):
  /* "/home/david/coding/yum/yum/depsolve.pyx":472
 *         #                       - be confused but continue
 * 
 *         if self._quickWhatProvides(needname, needflags, needversion):             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___quickWhatProvides); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __pyx_t_1 = PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {
 473:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":473
 * 
 *         if self._quickWhatProvides(needname, needflags, needversion):
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         provSack = self.whatProvides(needname, needflags, needversion)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 474: 
 475:         provSack = self.whatProvides(needname, needflags, needversion)
  /* "/home/david/coding/yum/yum/depsolve.pyx":475
 *             return checkdeps, missingdep
 * 
 *         provSack = self.whatProvides(needname, needflags, needversion)             # <<<<<<<<<<<<<<
 *         # get rid of things that are already in the rpmdb - b/c it's pointless to use them here
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__whatProvides); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needflags);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_needflags);
  __Pyx_GIVEREF(__pyx_v_needflags);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_v_provSack);
  __pyx_v_provSack = __pyx_t_5;
  __pyx_t_5 = 0;
 476:         # get rid of things that are already in the rpmdb - b/c it's pointless to use them here
 477: 
 478:         for pkg in provSack.returnPackages():
  /* "/home/david/coding/yum/yum/depsolve.pyx":478
 *         # get rid of things that are already in the rpmdb - b/c it's pointless to use them here
 * 
 *         for pkg in provSack.returnPackages():             # <<<<<<<<<<<<<<
 *             if self.rpmdb.contains(po=pkg): # is it already installed?
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__returnPackages); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_9 = 0; __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5);
  } else {
    __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_5))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_5))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++;
    } else {
      __pyx_t_6 = PyIter_Next(__pyx_t_5);
      if (!__pyx_t_6) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_DECREF(__pyx_v_pkg);
    __pyx_v_pkg = __pyx_t_6;
    __pyx_t_6 = 0;
 479:             if self.rpmdb.contains(po=pkg): # is it already installed?
    /* "/home/david/coding/yum/yum/depsolve.pyx":479
 * 
 *         for pkg in provSack.returnPackages():
 *             if self.rpmdb.contains(po=pkg): # is it already installed?             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 *                 provSack.delPackage(pkg)
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__contains); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__po), __pyx_v_pkg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_8) {
 480:                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":480
 *         for pkg in provSack.returnPackages():
 *             if self.rpmdb.contains(po=pkg): # is it already installed?
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)             # <<<<<<<<<<<<<<
 *                 provSack.delPackage(pkg)
 *                 continue
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_46));
      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_46));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_46));
      __pyx_t_2 = PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_pkg);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_pkg);
      __Pyx_GIVEREF(__pyx_v_pkg);
      __pyx_t_1 = 0;
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 481:                 provSack.delPackage(pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":481
 *             if self.rpmdb.contains(po=pkg): # is it already installed?
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 *                 provSack.delPackage(pkg)             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__delPackage); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pkg);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pkg);
      __Pyx_GIVEREF(__pyx_v_pkg);
      __pyx_t_6 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 482:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":482
 *                 self.verbose_logger.log(logginglevels.DEBUG_2, _('%s is in providing packages but it is already installed, removing.'), pkg)
 *                 provSack.delPackage(pkg)
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             # we need to check to see, if we have anything similar to it (name-wise)
 */
      goto __pyx_L7_continue;
      goto __pyx_L9;
    }
    __pyx_L9:;
 483: 
 484:             # we need to check to see, if we have anything similar to it (name-wise)
 485:             # installed or in the ts, and this isn't a package that allows multiple installs
 486:             # then if it's newer, fine - continue on, if not, then we're unresolveable
 487:             # cite it and exit
 488: 
 489:             tspkgs = []
    /* "/home/david/coding/yum/yum/depsolve.pyx":489
 *             # cite it and exit
 * 
 *             tspkgs = []             # <<<<<<<<<<<<<<
 *             if not self.allowedMultipleInstalls(pkg):
 *                 # from ts
 */
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    __Pyx_DECREF(__pyx_v_tspkgs);
    __pyx_v_tspkgs = ((PyObject *)__pyx_t_6);
    __pyx_t_6 = 0;
 490:             if not self.allowedMultipleInstalls(pkg):
    /* "/home/david/coding/yum/yum/depsolve.pyx":490
 * 
 *             tspkgs = []
 *             if not self.allowedMultipleInstalls(pkg):             # <<<<<<<<<<<<<<
 *                 # from ts
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s_25); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_pkg);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_pkg);
    __Pyx_GIVEREF(__pyx_v_pkg);
    __pyx_t_2 = PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_10 = (!__pyx_t_8);
    if (__pyx_t_10) {
 491:                 # from ts
 492:                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
      /* "/home/david/coding/yum/yum/depsolve.pyx":492
 *             if not self.allowedMultipleInstalls(pkg):
 *                 # from ts
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)             # <<<<<<<<<<<<<<
 *                 for tspkg in tspkgs:
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__matchNaevr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__name), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_tspkgs);
      __pyx_v_tspkgs = __pyx_t_6;
      __pyx_t_6 = 0;
 493:                 for tspkg in tspkgs:
      /* "/home/david/coding/yum/yum/depsolve.pyx":493
 *                 # from ts
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
 *                 for tspkg in tspkgs:             # <<<<<<<<<<<<<<
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 *                         if tspkg.po.verGT(pkg):
 */
      if (PyList_CheckExact(__pyx_v_tspkgs) || PyTuple_CheckExact(__pyx_v_tspkgs)) {
        __pyx_t_11 = 0; __pyx_t_6 = __pyx_v_tspkgs; __Pyx_INCREF(__pyx_t_6);
      } else {
        __pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_tspkgs); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
      }
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_2); __pyx_t_11++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_2); __pyx_t_11++;
        } else {
          __pyx_t_2 = PyIter_Next(__pyx_t_6);
          if (!__pyx_t_2) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_DECREF(__pyx_v_tspkg);
        __pyx_v_tspkg = __pyx_t_2;
        __pyx_t_2 = 0;
 494:                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
        /* "/home/david/coding/yum/yum/depsolve.pyx":494
 *                 tspkgs = self.tsInfo.matchNaevr(name=pkg.name)
 *                 for tspkg in tspkgs:
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch             # <<<<<<<<<<<<<<
 *                         if tspkg.po.verGT(pkg):
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 */
        __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__canCoinstall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__arch); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__arch); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_3 = 0;
        __pyx_t_4 = 0;
        __pyx_t_4 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_8 = (!__pyx_t_10);
        if (__pyx_t_8) {
 495:                         if tspkg.po.verGT(pkg):
          /* "/home/david/coding/yum/yum/depsolve.pyx":495
 *                 for tspkg in tspkgs:
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 *                         if tspkg.po.verGT(pkg):             # <<<<<<<<<<<<<<
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 */
          __pyx_t_4 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__po); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__verGT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_INCREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pkg);
          __Pyx_GIVEREF(__pyx_v_pkg);
          __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_8) {
 496:                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
            /* "/home/david/coding/yum/yum/depsolve.pyx":496
 *                     if not canCoinstall(pkg.arch, tspkg.po.arch): # a comparable arch
 *                         if tspkg.po.verGT(pkg):
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg             # <<<<<<<<<<<<<<
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                             provSack.delPackage(pkg)
 */
            __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_INCREF(((PyObject *)__pyx_kp_s_47));
            PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_47));
            __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_47));
            __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyNumber_Remainder(__pyx_t_1, __pyx_v_pkg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_v_msg);
            __pyx_v_msg = __pyx_t_4;
            __pyx_t_4 = 0;
 497:                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
            /* "/home/david/coding/yum/yum/depsolve.pyx":497
 *                         if tspkg.po.verGT(pkg):
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)             # <<<<<<<<<<<<<<
 *                             provSack.delPackage(pkg)
 *                             continue
 */
            __pyx_t_4 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_2 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
            __Pyx_GIVEREF(__pyx_t_2);
            __Pyx_INCREF(__pyx_v_msg);
            PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_msg);
            __Pyx_GIVEREF(__pyx_v_msg);
            __pyx_t_2 = 0;
            __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 498:                             provSack.delPackage(pkg)
            /* "/home/david/coding/yum/yum/depsolve.pyx":498
 *                             msg = _('Potential resolving package %s has newer instance in ts.') % pkg
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                             provSack.delPackage(pkg)             # <<<<<<<<<<<<<<
 *                             continue
 *                         elif tspkg.po.verLT(pkg):
 */
            __pyx_t_2 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__delPackage); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_INCREF(__pyx_v_pkg);
            PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pkg);
            __Pyx_GIVEREF(__pyx_v_pkg);
            __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 499:                             continue
            /* "/home/david/coding/yum/yum/depsolve.pyx":499
 *                             self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                             provSack.delPackage(pkg)
 *                             continue             # <<<<<<<<<<<<<<
 *                         elif tspkg.po.verLT(pkg):
 *                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)
 */
            goto __pyx_L11_continue;
            goto __pyx_L14;
          }
 500:                         elif tspkg.po.verLT(pkg):
          /* "/home/david/coding/yum/yum/depsolve.pyx":500
 *                             provSack.delPackage(pkg)
 *                             continue
 *                         elif tspkg.po.verLT(pkg):             # <<<<<<<<<<<<<<
 *                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)
 * 
 */
          __pyx_t_1 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__verLT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pkg);
          __Pyx_GIVEREF(__pyx_v_pkg);
          __pyx_t_2 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_8) {
 501:                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)
            /* "/home/david/coding/yum/yum/depsolve.pyx":501
 *                             continue
 *                         elif tspkg.po.verLT(pkg):
 *                             upgraded.setdefault(pkg.pkgtup, []).append(tspkg.pkgtup)             # <<<<<<<<<<<<<<
 * 
 *                 # from rpmdb
 */
            __pyx_t_2 = PyObject_GetAttr(__pyx_v_upgraded, __pyx_n_s__setdefault); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_1 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(((PyObject *)__pyx_t_4));
            __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_1);
            PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_4));
            __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
            __pyx_t_1 = 0;
            __pyx_t_4 = 0;
            __pyx_t_4 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = PyObject_GetAttr(__pyx_v_tspkg, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            goto __pyx_L14;
          }
          __pyx_L14:;
          goto __pyx_L13;
        }
        __pyx_L13:;
        __pyx_L11_continue:;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 502: 
 503:                 # from rpmdb
 504:                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)
      /* "/home/david/coding/yum/yum/depsolve.pyx":504
 * 
 *                 # from rpmdb
 *                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)             # <<<<<<<<<<<<<<
 *                 for dbpkg in dbpkgs:
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__searchNevra); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
      __pyx_t_3 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_dbpkgs);
      __pyx_v_dbpkgs = __pyx_t_3;
      __pyx_t_3 = 0;
 505:                 for dbpkg in dbpkgs:
      /* "/home/david/coding/yum/yum/depsolve.pyx":505
 *                 # from rpmdb
 *                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)
 *                 for dbpkg in dbpkgs:             # <<<<<<<<<<<<<<
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 */
      if (PyList_CheckExact(__pyx_v_dbpkgs) || PyTuple_CheckExact(__pyx_v_dbpkgs)) {
        __pyx_t_11 = 0; __pyx_t_3 = __pyx_v_dbpkgs; __Pyx_INCREF(__pyx_t_3);
      } else {
        __pyx_t_11 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_dbpkgs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
      }
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_3)) break;
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
        } else {
          __pyx_t_6 = PyIter_Next(__pyx_t_3);
          if (!__pyx_t_6) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_DECREF(__pyx_v_dbpkg);
        __pyx_v_dbpkg = __pyx_t_6;
        __pyx_t_6 = 0;
 506:                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
        /* "/home/david/coding/yum/yum/depsolve.pyx":506
 *                 dbpkgs = self.rpmdb.searchNevra(name=pkg.name)
 *                 for dbpkg in dbpkgs:
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):             # <<<<<<<<<<<<<<
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_dbpkg, __pyx_n_s__verGT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_pkg);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_pkg);
        __Pyx_GIVEREF(__pyx_v_pkg);
        __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_8) {
          __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__canCoinstall); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_2 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__arch); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_dbpkg, __pyx_n_s__arch); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_6);
          __pyx_t_2 = 0;
          __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_12 = (!__pyx_t_10);
          __pyx_t_10 = __pyx_t_12;
        } else {
          __pyx_t_10 = __pyx_t_8;
        }
        if (__pyx_t_10) {
 507:                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
          /* "/home/david/coding/yum/yum/depsolve.pyx":507
 *                 for dbpkg in dbpkgs:
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg             # <<<<<<<<<<<<<<
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                         provSack.delPackage(pkg)
 */
          __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_48));
          PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_48));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_48));
          __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_Remainder(__pyx_t_4, __pyx_v_pkg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_v_msg);
          __pyx_v_msg = __pyx_t_1;
          __pyx_t_1 = 0;
 508:                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
          /* "/home/david/coding/yum/yum/depsolve.pyx":508
 *                     if dbpkg.verGT(pkg) and not canCoinstall(pkg.arch, dbpkg.arch):
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)             # <<<<<<<<<<<<<<
 *                         provSack.delPackage(pkg)
 *                         continue
 */
          __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
          __Pyx_GIVEREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_v_msg);
          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_msg);
          __Pyx_GIVEREF(__pyx_v_msg);
          __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 509:                         provSack.delPackage(pkg)
          /* "/home/david/coding/yum/yum/depsolve.pyx":509
 *                         msg = _('Potential resolving package %s has newer instance installed.') % pkg
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                         provSack.delPackage(pkg)             # <<<<<<<<<<<<<<
 *                         continue
 * 
 */
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__delPackage); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pkg);
          __Pyx_GIVEREF(__pyx_v_pkg);
          __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 510:                         continue
          /* "/home/david/coding/yum/yum/depsolve.pyx":510
 *                         self.verbose_logger.log(logginglevels.DEBUG_2, msg)
 *                         provSack.delPackage(pkg)
 *                         continue             # <<<<<<<<<<<<<<
 * 
 *         if len(provSack) == 0: # unresolveable
 */
          goto __pyx_L15_continue;
          goto __pyx_L17;
        }
        __pyx_L17:;
        __pyx_L15_continue:;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L10;
    }
    __pyx_L10:;
    __pyx_L7_continue:;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 511: 
 512:         if len(provSack) == 0: # unresolveable
  /* "/home/david/coding/yum/yum/depsolve.pyx":512
 *                         continue
 * 
 *         if len(provSack) == 0: # unresolveable             # <<<<<<<<<<<<<<
 *             missingdep = 1
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_provSack); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_10 = (__pyx_t_9 == 0);
  if (__pyx_t_10) {
 513:             missingdep = 1
    /* "/home/david/coding/yum/yum/depsolve.pyx":513
 * 
 *         if len(provSack) == 0: # unresolveable
 *             missingdep = 1             # <<<<<<<<<<<<<<
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF(__pyx_v_missingdep);
    __pyx_v_missingdep = __pyx_int_1;
 514:             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
    /* "/home/david/coding/yum/yum/depsolve.pyx":514
 *         if len(provSack) == 0: # unresolveable
 *             missingdep = 1
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)             # <<<<<<<<<<<<<<
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__repoid); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_prob_pkg);
    __pyx_v_prob_pkg = ((PyObject *)__pyx_t_5);
    __pyx_t_5 = 0;
 515:             msg = _('Missing Dependency: %s is needed by package %s') % \
    /* "/home/david/coding/yum/yum/depsolve.pyx":515
 *             missingdep = 1
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % \             # <<<<<<<<<<<<<<
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 *                                                                    prob_pkg)
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_49));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_49));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_49));
    __pyx_t_4 = PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 516:             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
    /* "/home/david/coding/yum/yum/depsolve.pyx":516
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),             # <<<<<<<<<<<<<<
 *                                                                    prob_pkg)
 *             errorlist.append(msg)
 */
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__formatRequire); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_needversion);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_needversion);
    __Pyx_GIVEREF(__pyx_v_needversion);
    __Pyx_INCREF(__pyx_v_needflags);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_needflags);
    __Pyx_GIVEREF(__pyx_v_needflags);
    __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 517:                                                                    prob_pkg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":517
 *             msg = _('Missing Dependency: %s is needed by package %s') % \
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 *                                                                    prob_pkg)             # <<<<<<<<<<<<<<
 *             errorlist.append(msg)
 *             return checkdeps, missingdep
 */
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_prob_pkg);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_prob_pkg);
    __Pyx_GIVEREF(__pyx_v_prob_pkg);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Remainder(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_msg);
    __pyx_v_msg = __pyx_t_1;
    __pyx_t_1 = 0;
 518:             errorlist.append(msg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":518
 *             (rpmUtils.miscutils.formatRequire(needname, needversion, needflags),
 *                                                                    prob_pkg)
 *             errorlist.append(msg)             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_Append(__pyx_v_errorlist, __pyx_v_msg); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 519:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":519
 *                                                                    prob_pkg)
 *             errorlist.append(msg)
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         # iterate the provSack briefly, if we find the package is already in the
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
    goto __pyx_L18;
  }
  __pyx_L18:;
 520: 
 521:         # iterate the provSack briefly, if we find the package is already in the
 522:         # tsInfo then just skip this run
 523:         for pkg in provSack.returnPackages():
  /* "/home/david/coding/yum/yum/depsolve.pyx":523
 *         # iterate the provSack briefly, if we find the package is already in the
 *         # tsInfo then just skip this run
 *         for pkg in provSack.returnPackages():             # <<<<<<<<<<<<<<
 *             (n,a,e,v,r) = pkg.pkgtup
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__returnPackages); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_9 = 0; __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++;
    } else {
      __pyx_t_5 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_5) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF(__pyx_v_pkg);
    __pyx_v_pkg = __pyx_t_5;
    __pyx_t_5 = 0;
 524:             (n,a,e,v,r) = pkg.pkgtup
    /* "/home/david/coding/yum/yum/depsolve.pyx":524
 *         # tsInfo then just skip this run
 *         for pkg in provSack.returnPackages():
 *             (n,a,e,v,r) = pkg.pkgtup             # <<<<<<<<<<<<<<
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 *             if pkgmode in ['i', 'u']:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyTuple_CheckExact(__pyx_t_5) && likely(PyTuple_GET_SIZE(__pyx_t_5) == 5)) {
      PyObject* tuple = __pyx_t_5;
      __pyx_t_4 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_4);
      __pyx_t_3 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_3);
      __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
      __pyx_t_2 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_2);
      __pyx_t_7 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_v_n);
      __pyx_v_n = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_a);
      __pyx_v_a = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_e);
      __pyx_v_e = __pyx_t_6;
      __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_v);
      __pyx_v_v = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r);
      __pyx_v_r = __pyx_t_7;
      __pyx_t_7 = 0;
    } else {
      __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_13, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_13, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_13, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_13, 3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_13, 4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_EndUnpack(__pyx_t_13, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_v_n);
      __pyx_v_n = __pyx_t_4;
      __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_a);
      __pyx_v_a = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_v_e);
      __pyx_v_e = __pyx_t_6;
      __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_v_v);
      __pyx_v_v = __pyx_t_2;
      __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_v_r);
      __pyx_v_r = __pyx_t_7;
      __pyx_t_7 = 0;
    }
 525:             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
    /* "/home/david/coding/yum/yum/depsolve.pyx":525
 *         for pkg in provSack.returnPackages():
 *             (n,a,e,v,r) = pkg.pkgtup
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)             # <<<<<<<<<<<<<<
 *             if pkgmode in ['i', 'u']:
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__getMode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__name), __pyx_v_n) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__arch), __pyx_v_a) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__epoch), __pyx_v_e) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__ver), __pyx_v_v) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__rel), __pyx_v_r) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_pkgmode);
    __pyx_v_pkgmode = __pyx_t_2;
    __pyx_t_2 = 0;
 526:             if pkgmode in ['i', 'u']:
    /* "/home/david/coding/yum/yum/depsolve.pyx":526
 *             (n,a,e,v,r) = pkg.pkgtup
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 *             if pkgmode in ['i', 'u']:             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 *                     _('%s already in ts, skipping this one'), pkg)
 */
    __Pyx_INCREF(__pyx_v_pkgmode);
    __pyx_t_2 = __pyx_v_pkgmode;
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_n_s__i), Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_8 = __pyx_t_10;
    if (!__pyx_t_8) {
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_12 = __pyx_t_10;
      __pyx_t_10 = __pyx_t_12;
    } else {
      __pyx_t_10 = __pyx_t_8;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_8 = __pyx_t_10;
    if (__pyx_t_8) {
 527:                 self.verbose_logger.log(logginglevels.DEBUG_2,
      /* "/home/david/coding/yum/yum/depsolve.pyx":527
 *             pkgmode = self.tsInfo.getMode(name=n, arch=a, epoch=e, ver=v, rel=r)
 *             if pkgmode in ['i', 'u']:
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                     _('%s already in ts, skipping this one'), pkg)
 *                 # FIXME: Remove this line, if it is not needed ?
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__log); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 528:                     _('%s already in ts, skipping this one'), pkg)
      /* "/home/david/coding/yum/yum/depsolve.pyx":528
 *             if pkgmode in ['i', 'u']:
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 *                     _('%s already in ts, skipping this one'), pkg)             # <<<<<<<<<<<<<<
 *                 # FIXME: Remove this line, if it is not needed ?
 *                 # checkdeps = 1
 */
      __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_50));
      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_s_50));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_50));
      __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_pkg);
      PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_pkg);
      __Pyx_GIVEREF(__pyx_v_pkg);
      __pyx_t_7 = 0;
      __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 529:                 # FIXME: Remove this line, if it is not needed ?
 530:                 # checkdeps = 1
 531:                 self._last_req = pkg
      /* "/home/david/coding/yum/yum/depsolve.pyx":531
 *                 # FIXME: Remove this line, if it is not needed ?
 *                 # checkdeps = 1
 *                 self._last_req = pkg             # <<<<<<<<<<<<<<
 *                 return checkdeps, missingdep
 * 
 */
      if (PyObject_SetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___last_req, __pyx_v_pkg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 532:                 return checkdeps, missingdep
      /* "/home/david/coding/yum/yum/depsolve.pyx":532
 *                 # checkdeps = 1
 *                 self._last_req = pkg
 *                 return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         # find the best one
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_checkdeps);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_checkdeps);
      __Pyx_GIVEREF(__pyx_v_checkdeps);
      __Pyx_INCREF(__pyx_v_missingdep);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_missingdep);
      __Pyx_GIVEREF(__pyx_v_missingdep);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L0;
      goto __pyx_L21;
    }
    __pyx_L21:;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 533: 
 534:         # find the best one
 535: 
 536:         # try updating the already install pkgs
 537:         for pkg in provSack.returnNewestByName():
  /* "/home/david/coding/yum/yum/depsolve.pyx":537
 * 
 *         # try updating the already install pkgs
 *         for pkg in provSack.returnNewestByName():             # <<<<<<<<<<<<<<
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,
 *                                   epoch=pkg.epoch, version=pkg.version,
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s__returnNewestByName); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_9 = 0; __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1);
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
      if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_1);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_pkg);
    __pyx_v_pkg = __pyx_t_3;
    __pyx_t_3 = 0;
 538:             results = self.update(requiringPo=requiringPo, name=pkg.name,
    /* "/home/david/coding/yum/yum/depsolve.pyx":538
 *         # try updating the already install pkgs
 *         for pkg in provSack.returnNewestByName():
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,             # <<<<<<<<<<<<<<
 *                                   epoch=pkg.epoch, version=pkg.version,
 *                                   rel=pkg.rel)
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__requiringPo), __pyx_v_requiringPo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 539:                                   epoch=pkg.epoch, version=pkg.version,
    /* "/home/david/coding/yum/yum/depsolve.pyx":539
 *         for pkg in provSack.returnNewestByName():
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,
 *                                   epoch=pkg.epoch, version=pkg.version,             # <<<<<<<<<<<<<<
 *                                   rel=pkg.rel)
 *             for txmbr in results:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__epoch); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__epoch), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__version); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__version), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 540:                                   rel=pkg.rel)
    /* "/home/david/coding/yum/yum/depsolve.pyx":540
 *             results = self.update(requiringPo=requiringPo, name=pkg.name,
 *                                   epoch=pkg.epoch, version=pkg.version,
 *                                   rel=pkg.rel)             # <<<<<<<<<<<<<<
 *             for txmbr in results:
 *                 if pkg == txmbr.po:
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__rel); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__rel), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_results);
    __pyx_v_results = __pyx_t_5;
    __pyx_t_5 = 0;
 541:             for txmbr in results:
    /* "/home/david/coding/yum/yum/depsolve.pyx":541
 *                                   epoch=pkg.epoch, version=pkg.version,
 *                                   rel=pkg.rel)
 *             for txmbr in results:             # <<<<<<<<<<<<<<
 *                 if pkg == txmbr.po:
 *                     checkdeps = True
 */
    if (PyList_CheckExact(__pyx_v_results) || PyTuple_CheckExact(__pyx_v_results)) {
      __pyx_t_11 = 0; __pyx_t_5 = __pyx_v_results; __Pyx_INCREF(__pyx_t_5);
    } else {
      __pyx_t_11 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_results); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
    }
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_5))) {
        if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++;
      } else {
        __pyx_t_6 = PyIter_Next(__pyx_t_5);
        if (!__pyx_t_6) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_DECREF(__pyx_v_txmbr);
      __pyx_v_txmbr = __pyx_t_6;
      __pyx_t_6 = 0;
 542:                 if pkg == txmbr.po:
      /* "/home/david/coding/yum/yum/depsolve.pyx":542
 *                                   rel=pkg.rel)
 *             for txmbr in results:
 *                 if pkg == txmbr.po:             # <<<<<<<<<<<<<<
 *                     checkdeps = True
 *                     self._last_req = pkg
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_pkg, __pyx_t_6, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_8) {
 543:                     checkdeps = True
        /* "/home/david/coding/yum/yum/depsolve.pyx":543
 *             for txmbr in results:
 *                 if pkg == txmbr.po:
 *                     checkdeps = True             # <<<<<<<<<<<<<<
 *                     self._last_req = pkg
 *                     return checkdeps, missingdep
 */
        __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_v_checkdeps);
        __pyx_v_checkdeps = __pyx_t_3;
        __pyx_t_3 = 0;
 544:                     self._last_req = pkg
        /* "/home/david/coding/yum/yum/depsolve.pyx":544
 *                 if pkg == txmbr.po:
 *                     checkdeps = True
 *                     self._last_req = pkg             # <<<<<<<<<<<<<<
 *                     return checkdeps, missingdep
 * 
 */
        if (PyObject_SetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___last_req, __pyx_v_pkg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 545:                     return checkdeps, missingdep
        /* "/home/david/coding/yum/yum/depsolve.pyx":545
 *                     checkdeps = True
 *                     self._last_req = pkg
 *                     return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 *         # find out which arch of the ones we can choose from is closest
 */
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_v_checkdeps);
        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_checkdeps);
        __Pyx_GIVEREF(__pyx_v_checkdeps);
        __Pyx_INCREF(__pyx_v_missingdep);
        PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_missingdep);
        __Pyx_GIVEREF(__pyx_v_missingdep);
        __pyx_r = __pyx_t_3;
        __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L0;
        goto __pyx_L26;
      }
      __pyx_L26:;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 546: 
 547:         # find out which arch of the ones we can choose from is closest
 548:         # to the arch of the requesting pkg
 549:         newest = provSack.returnNewestByNameArch()
  /* "/home/david/coding/yum/yum/depsolve.pyx":549
 *         # find out which arch of the ones we can choose from is closest
 *         # to the arch of the requesting pkg
 *         newest = provSack.returnNewestByNameArch()             # <<<<<<<<<<<<<<
 *         if len(newest) > 1: # there's no way this can be zero
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_provSack, __pyx_n_s_51); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_newest);
  __pyx_v_newest = __pyx_t_5;
  __pyx_t_5 = 0;
 550:         if len(newest) > 1: # there's no way this can be zero
  /* "/home/david/coding/yum/yum/depsolve.pyx":550
 *         # to the arch of the requesting pkg
 *         newest = provSack.returnNewestByNameArch()
 *         if len(newest) > 1: # there's no way this can be zero             # <<<<<<<<<<<<<<
 * 
 *             pkgresults = self._compare_providers(newest, requiringPo)
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_newest); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = (__pyx_t_9 > 1);
  if (__pyx_t_8) {
 551: 
 552:             pkgresults = self._compare_providers(newest, requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":552
 *         if len(newest) > 1: # there's no way this can be zero
 * 
 *             pkgresults = self._compare_providers(newest, requiringPo)             # <<<<<<<<<<<<<<
 *             # take the first one...
 *             best = pkgresults[0][0]
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___compare_providers); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_newest);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_newest);
    __Pyx_GIVEREF(__pyx_v_newest);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_pkgresults);
    __pyx_v_pkgresults = __pyx_t_3;
    __pyx_t_3 = 0;
 553:             # take the first one...
 554:             best = pkgresults[0][0]
    /* "/home/david/coding/yum/yum/depsolve.pyx":554
 *             pkgresults = self._compare_providers(newest, requiringPo)
 *             # take the first one...
 *             best = pkgresults[0][0]             # <<<<<<<<<<<<<<
 * 
 *         elif len(newest) == 1:
 */
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pkgresults, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_best);
    __pyx_v_best = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L27;
  }
 555: 
 556:         elif len(newest) == 1:
  /* "/home/david/coding/yum/yum/depsolve.pyx":556
 *             best = pkgresults[0][0]
 * 
 *         elif len(newest) == 1:             # <<<<<<<<<<<<<<
 *             best = newest[0]
 * 
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_newest); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = (__pyx_t_9 == 1);
  if (__pyx_t_8) {
 557:             best = newest[0]
    /* "/home/david/coding/yum/yum/depsolve.pyx":557
 * 
 *         elif len(newest) == 1:
 *             best = newest[0]             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_newest, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_best);
    __pyx_v_best = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L27;
  }
  __pyx_L27:;
 558: 
 559: 
 560:         if self.rpmdb.contains(po=best): # is it already installed?
  /* "/home/david/coding/yum/yum/depsolve.pyx":560
 * 
 * 
 *         if self.rpmdb.contains(po=best): # is it already installed?             # <<<<<<<<<<<<<<
 *             missingdep = 1
 *             checkdeps = 0
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__contains); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__po), __pyx_v_best) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_8) {
 561:             missingdep = 1
    /* "/home/david/coding/yum/yum/depsolve.pyx":561
 * 
 *         if self.rpmdb.contains(po=best): # is it already installed?
 *             missingdep = 1             # <<<<<<<<<<<<<<
 *             checkdeps = 0
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 */
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF(__pyx_v_missingdep);
    __pyx_v_missingdep = __pyx_int_1;
 562:             checkdeps = 0
    /* "/home/david/coding/yum/yum/depsolve.pyx":562
 *         if self.rpmdb.contains(po=best): # is it already installed?
 *             missingdep = 1
 *             checkdeps = 0             # <<<<<<<<<<<<<<
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 */
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF(__pyx_v_checkdeps);
    __pyx_v_checkdeps = __pyx_int_0;
 563:             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
    /* "/home/david/coding/yum/yum/depsolve.pyx":563
 *             missingdep = 1
 *             checkdeps = 0
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)             # <<<<<<<<<<<<<<
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 *             errorlist.append(msg)
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_requiringPo, __pyx_n_s__repoid); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_prob_pkg);
    __pyx_v_prob_pkg = ((PyObject *)__pyx_t_5);
    __pyx_t_5 = 0;
 564:             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":564
 *             checkdeps = 0
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)             # <<<<<<<<<<<<<<
 *             errorlist.append(msg)
 *             return checkdeps, missingdep
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_49));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_49));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_49));
    __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_needname);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_needname);
    __Pyx_GIVEREF(__pyx_v_needname);
    __Pyx_INCREF(__pyx_v_prob_pkg);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_prob_pkg);
    __Pyx_GIVEREF(__pyx_v_prob_pkg);
    __pyx_t_5 = PyNumber_Remainder(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_msg);
    __pyx_v_msg = __pyx_t_5;
    __pyx_t_5 = 0;
 565:             errorlist.append(msg)
    /* "/home/david/coding/yum/yum/depsolve.pyx":565
 *             prob_pkg = "%s (%s)" % (requiringPo,requiringPo.repoid)
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 *             errorlist.append(msg)             # <<<<<<<<<<<<<<
 *             return checkdeps, missingdep
 * 
 */
    __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_errorlist, __pyx_v_msg); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 566:             return checkdeps, missingdep
    /* "/home/david/coding/yum/yum/depsolve.pyx":566
 *             msg = _('Missing Dependency: %s is needed by package %s') % (needname, prob_pkg)
 *             errorlist.append(msg)
 *             return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_checkdeps);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_checkdeps);
    __Pyx_GIVEREF(__pyx_v_checkdeps);
    __Pyx_INCREF(__pyx_v_missingdep);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_missingdep);
    __Pyx_GIVEREF(__pyx_v_missingdep);
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
    goto __pyx_L28;
  }
  __pyx_L28:;
 567: 
 568: 
 569: 
 570:         # FIXME - why can't we look up in the transaction set for the requiringPkg
 571:         # and know what needs it that way and provide a more sensible dep structure in the txmbr
 572:         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
  /* "/home/david/coding/yum/yum/depsolve.pyx":572
 *         # FIXME - why can't we look up in the transaction set for the requiringPkg
 *         # and know what needs it that way and provide a more sensible dep structure in the txmbr
 *         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)             # <<<<<<<<<<<<<<
 *         if len(inst) > 0:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__searchNevra); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_best, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__name), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_best, __pyx_n_s__arch); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__arch), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_inst);
  __pyx_v_inst = __pyx_t_3;
  __pyx_t_3 = 0;
 573:         if len(inst) > 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":573
 *         # and know what needs it that way and provide a more sensible dep structure in the txmbr
 *         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
 *         if len(inst) > 0:             # <<<<<<<<<<<<<<
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
 *                 requiringPo))
 */
  __pyx_t_9 = PyObject_Length(__pyx_v_inst); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_8 = (__pyx_t_9 > 0);
  if (__pyx_t_8) {
 574:             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
    /* "/home/david/coding/yum/yum/depsolve.pyx":574
 *         inst = self.rpmdb.searchNevra(name=best.name, arch=best.arch)
 *         if len(inst) > 0:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,             # <<<<<<<<<<<<<<
 *                 requiringPo))
 *             # FIXME: we should probably handle updating multiple packages...
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__debug); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_52));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_52));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_52));
    __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 575:                 requiringPo))
    /* "/home/david/coding/yum/yum/depsolve.pyx":575
 *         if len(inst) > 0:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as update for %s') %(best,
 *                 requiringPo))             # <<<<<<<<<<<<<<
 *             # FIXME: we should probably handle updating multiple packages...
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])
 */
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_3 = PyNumber_Remainder(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 576:             # FIXME: we should probably handle updating multiple packages...
 577:             txmbr = self.tsInfo.addUpdate(best, inst[0])
    /* "/home/david/coding/yum/yum/depsolve.pyx":577
 *                 requiringPo))
 *             # FIXME: we should probably handle updating multiple packages...
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])             # <<<<<<<<<<<<<<
 *             txmbr.setAsDep(po=requiringPo)
 *             txmbr.reason = "dep"
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__addUpdate); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_inst, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_3;
    __pyx_t_3 = 0;
 578:             txmbr.setAsDep(po=requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":578
 *             # FIXME: we should probably handle updating multiple packages...
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])
 *             txmbr.setAsDep(po=requiringPo)             # <<<<<<<<<<<<<<
 *             txmbr.reason = "dep"
 *             self._last_req = best
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__setAsDep); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__po), __pyx_v_requiringPo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 579:             txmbr.reason = "dep"
    /* "/home/david/coding/yum/yum/depsolve.pyx":579
 *             txmbr = self.tsInfo.addUpdate(best, inst[0])
 *             txmbr.setAsDep(po=requiringPo)
 *             txmbr.reason = "dep"             # <<<<<<<<<<<<<<
 *             self._last_req = best
 *         else:
 */
    if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__reason, ((PyObject *)__pyx_n_s__dep)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 580:             self._last_req = best
    /* "/home/david/coding/yum/yum/depsolve.pyx":580
 *             txmbr.setAsDep(po=requiringPo)
 *             txmbr.reason = "dep"
 *             self._last_req = best             # <<<<<<<<<<<<<<
 *         else:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
 */
    if (PyObject_SetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___last_req, __pyx_v_best) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L29;
  }
  /*else*/ {
 581:         else:
 582:             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
    /* "/home/david/coding/yum/yum/depsolve.pyx":582
 *             self._last_req = best
 *         else:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,             # <<<<<<<<<<<<<<
 *                 requiringPo)
 *             # FIXME: Don't we want .install() here, so obsoletes get done?
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__debug); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_53));
    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_53));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_53));
    __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 583:                 requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":583
 *         else:
 *             self.verbose_logger.debug(_('TSINFO: Marking %s as install for %s'), best,
 *                 requiringPo)             # <<<<<<<<<<<<<<
 *             # FIXME: Don't we want .install() here, so obsoletes get done?
 *             txmbr = self.tsInfo.addInstall(best)
 */
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    __Pyx_INCREF(__pyx_v_requiringPo);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_requiringPo);
    __Pyx_GIVEREF(__pyx_v_requiringPo);
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 584:             # FIXME: Don't we want .install() here, so obsoletes get done?
 585:             txmbr = self.tsInfo.addInstall(best)
    /* "/home/david/coding/yum/yum/depsolve.pyx":585
 *                 requiringPo)
 *             # FIXME: Don't we want .install() here, so obsoletes get done?
 *             txmbr = self.tsInfo.addInstall(best)             # <<<<<<<<<<<<<<
 *             txmbr.setAsDep(po=requiringPo)
 *             self._last_req = best
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__addInstall); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_best);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_best);
    __Pyx_GIVEREF(__pyx_v_best);
    __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_5;
    __pyx_t_5 = 0;
 586:             txmbr.setAsDep(po=requiringPo)
    /* "/home/david/coding/yum/yum/depsolve.pyx":586
 *             # FIXME: Don't we want .install() here, so obsoletes get done?
 *             txmbr = self.tsInfo.addInstall(best)
 *             txmbr.setAsDep(po=requiringPo)             # <<<<<<<<<<<<<<
 *             self._last_req = best
 * 
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__setAsDep); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
    if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__po), __pyx_v_requiringPo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 587:             self._last_req = best
    /* "/home/david/coding/yum/yum/depsolve.pyx":587
 *             txmbr = self.tsInfo.addInstall(best)
 *             txmbr.setAsDep(po=requiringPo)
 *             self._last_req = best             # <<<<<<<<<<<<<<
 * 
 *             # if we had other packages with this name.arch that we found
 */
    if (PyObject_SetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s___last_req, __pyx_v_best) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 588: 
 589:             # if we had other packages with this name.arch that we found
 590:             # before, they're not going to be installed anymore, so we
 591:             # should mark them to be re-checked
 592:             if upgraded.has_key(best.pkgtup):
    /* "/home/david/coding/yum/yum/depsolve.pyx":592
 *             # before, they're not going to be installed anymore, so we
 *             # should mark them to be re-checked
 *             if upgraded.has_key(best.pkgtup):             # <<<<<<<<<<<<<<
 *                 map(lambda x: self.tsInfo.remove(x), upgraded[best.pkgtup])
 * 
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_upgraded, __pyx_n_s__has_key); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_best, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_8) {
 593:                 map(lambda x: self.tsInfo.remove(x), upgraded[best.pkgtup])
/* "/home/david/coding/yum/yum/depsolve.pyx":593
 *             # should mark them to be re-checked
 *             if upgraded.has_key(best.pkgtup):
 *                 map(lambda x: self.tsInfo.remove(x), upgraded[best.pkgtup])             # <<<<<<<<<<<<<<
 * 
 *         checkdeps = 1
 */

static PyObject *__pyx_lambda_funcdef3yum_8depsolve_25_requiringFromTransaction_lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x); /*proto*/
static PyMethodDef __pyx_lambda_methdef3yum_8depsolve_25_requiringFromTransaction_lambda3 = {__Pyx_NAMESTR("__pyx_lambda_funcdef3yum_8depsolve_25_requiringFromTransaction_lambda3"), (PyCFunction)__pyx_lambda_funcdef3yum_8depsolve_25_requiringFromTransaction_lambda3, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_lambda_funcdef3yum_8depsolve_25_requiringFromTransaction_lambda3(PyObject *__pyx_self, PyObject *__pyx_v_x) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__pyx_lambda_funcdef3yum_8depsolve_25_requiringFromTransaction_lambda3");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__requiringFromTransaction *)__pyx_self;
  __pyx_self = __pyx_self;
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyObject_GetAttr(__pyx_outer_scope->__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__remove); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_x);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_x);
  __Pyx_GIVEREF(__pyx_v_x);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve._requiringFromTransaction.lambda3");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

      /* "/home/david/coding/yum/yum/depsolve.pyx":593
 *             # should mark them to be re-checked
 *             if upgraded.has_key(best.pkgtup):
 *                 map(lambda x: self.tsInfo.remove(x), upgraded[best.pkgtup])             # <<<<<<<<<<<<<<
 * 
 *         checkdeps = 1
 */
      __pyx_t_6 = __pyx_binding_PyCFunctionType_New(&__pyx_lambda_methdef3yum_8depsolve_25_requiringFromTransaction_lambda3, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_best, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = PyObject_GetItem(__pyx_v_upgraded, __pyx_t_5); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_6 = 0;
      __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_Call(__pyx_builtin_map, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L30;
    }
    __pyx_L30:;
  }
  __pyx_L29:;
 594: 
 595:         checkdeps = 1
  /* "/home/david/coding/yum/yum/depsolve.pyx":595
 *                 map(lambda x: self.tsInfo.remove(x), upgraded[best.pkgtup])
 * 
 *         checkdeps = 1             # <<<<<<<<<<<<<<
 * 
 *         return checkdeps, missingdep
 */
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_DECREF(__pyx_v_checkdeps);
  __pyx_v_checkdeps = __pyx_int_1;
 596: 
 597:         return checkdeps, missingdep
  /* "/home/david/coding/yum/yum/depsolve.pyx":597
 *         checkdeps = 1
 * 
 *         return checkdeps, missingdep             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_checkdeps);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_checkdeps);
  __Pyx_GIVEREF(__pyx_v_checkdeps);
  __Pyx_INCREF(__pyx_v_missingdep);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_missingdep);
  __Pyx_GIVEREF(__pyx_v_missingdep);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._requiringFromTransaction");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_name);
  __Pyx_DECREF(__pyx_v_arch);
  __Pyx_DECREF(__pyx_v_epoch);
  __Pyx_DECREF(__pyx_v_version);
  __Pyx_DECREF(__pyx_v_release);
  __Pyx_DECREF(__pyx_v_needname);
  __Pyx_DECREF(__pyx_v_needflags);
  __Pyx_DECREF(__pyx_v_needversion);
  __Pyx_DECREF(__pyx_v_checkdeps);
  __Pyx_DECREF(__pyx_v_missingdep);
  __Pyx_DECREF(__pyx_v_upgraded);
  __Pyx_DECREF(__pyx_v_provSack);
  __Pyx_DECREF(__pyx_v_pkg);
  __Pyx_DECREF(__pyx_v_tspkgs);
  __Pyx_DECREF(__pyx_v_tspkg);
  __Pyx_DECREF(__pyx_v_msg);
  __Pyx_DECREF(__pyx_v_dbpkgs);
  __Pyx_DECREF(__pyx_v_dbpkg);
  __Pyx_DECREF(__pyx_v_prob_pkg);
  __Pyx_DECREF(__pyx_v_n);
  __Pyx_DECREF(__pyx_v_a);
  __Pyx_DECREF(__pyx_v_e);
  __Pyx_DECREF(__pyx_v_v);
  __Pyx_DECREF(__pyx_v_r);
  __Pyx_DECREF(__pyx_v_pkgmode);
  __Pyx_DECREF(__pyx_v_results);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_newest);
  __Pyx_DECREF(__pyx_v_pkgresults);
  __Pyx_DECREF(__pyx_v_best);
  __Pyx_DECREF(__pyx_v_inst);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 598: 
 599: 
 600:     def _processConflict(self, po, conflict, conflicting_po):
/* "/home/david/coding/yum/yum/depsolve.pyx":600
 * 
 * 
 *     def _processConflict(self, po, conflict, conflicting_po):             # <<<<<<<<<<<<<<
 *         """processes a Conflict dep from the resolveDeps() method"""
 * 
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__processConflict(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__processConflict[] = "processes a Conflict dep from the resolveDeps() method";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__processConflict = {__Pyx_NAMESTR("_processConflict"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__processConflict, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__processConflict)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__processConflict(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_po = 0;
  PyObject *__pyx_v_conflict = 0;
  PyObject *__pyx_v_conflicting_po = 0;
  int __pyx_v_CheckDeps;
  PyObject *__pyx_v_errormsgs;
  PyObject *__pyx_v_needname;
  PyObject *__pyx_v_flags;
  PyObject *__pyx_v_needversion;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_arch;
  PyObject *__pyx_v_epoch;
  PyObject *__pyx_v_ver;
  PyObject *__pyx_v_rel;
  PyObject *__pyx_v_niceformatneed;
  Py_ssize_t __pyx_v_length;
  PyObject *__pyx_v_txmbrs;
  PyObject *__pyx_v_msg;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__po,&__pyx_n_s__conflict,&__pyx_n_s__conflicting_po,0};
  __Pyx_RefNannySetupContext("_processConflict");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[4] = {0,0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__po);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_processConflict", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__conflict);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_processConflict", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  3:
      values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__conflicting_po);
      if (likely(values[3])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_processConflict", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_processConflict") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_po = values[1];
    __pyx_v_conflict = values[2];
    __pyx_v_conflicting_po = values[3];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_po = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_conflict = PyTuple_GET_ITEM(__pyx_args, 2);
    __pyx_v_conflicting_po = PyTuple_GET_ITEM(__pyx_args, 3);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_processConflict", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._processConflict");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_errormsgs = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_needname = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_flags = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_needversion = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_name = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_arch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_epoch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_ver = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rel = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_niceformatneed = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbrs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_msg = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":600
 * 
 * 
 *     def _processConflict(self, po, conflict, conflicting_po):             # <<<<<<<<<<<<<<
 *         """processes a Conflict dep from the resolveDeps() method"""
 * 
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__processConflict, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___processConflict, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 601:         """processes a Conflict dep from the resolveDeps() method"""
 602: 
 603:         CheckDeps = True
  /* "/home/david/coding/yum/yum/depsolve.pyx":603
 *         """processes a Conflict dep from the resolveDeps() method"""
 * 
 *         CheckDeps = True             # <<<<<<<<<<<<<<
 *         errormsgs = []
 * 
 */
  __pyx_v_CheckDeps = 1;
 604:         errormsgs = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":604
 * 
 *         CheckDeps = True
 *         errormsgs = []             # <<<<<<<<<<<<<<
 * 
 *         needname, flags, needversion = conflict
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_errormsgs));
  __pyx_v_errormsgs = __pyx_t_1;
  __pyx_t_1 = 0;
 605: 
 606:         needname, flags, needversion = conflict
  /* "/home/david/coding/yum/yum/depsolve.pyx":606
 *         errormsgs = []
 * 
 *         needname, flags, needversion = conflict             # <<<<<<<<<<<<<<
 *         (name, arch, epoch, ver, rel) = po.pkgtup
 * 
 */
  if (PyTuple_CheckExact(__pyx_v_conflict) && likely(PyTuple_GET_SIZE(__pyx_v_conflict) == 3)) {
    PyObject* tuple = __pyx_v_conflict;
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = PyObject_GetIter(__pyx_v_conflict); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_needname);
    __pyx_v_needname = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_flags);
    __pyx_v_flags = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_needversion);
    __pyx_v_needversion = __pyx_t_3;
    __pyx_t_3 = 0;
  }
 607:         (name, arch, epoch, ver, rel) = po.pkgtup
  /* "/home/david/coding/yum/yum/depsolve.pyx":607
 * 
 *         needname, flags, needversion = conflict
 *         (name, arch, epoch, ver, rel) = po.pkgtup             # <<<<<<<<<<<<<<
 * 
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyTuple_CheckExact(__pyx_t_3) && likely(PyTuple_GET_SIZE(__pyx_t_3) == 5)) {
    PyObject* tuple = __pyx_t_3;
    __pyx_t_2 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_GET_ITEM(tuple, 4); __Pyx_INCREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_ver);
    __pyx_v_ver = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_rel);
    __pyx_v_rel = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {
    __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __Pyx_UnpackItem(__pyx_t_7, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_7, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_7, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_7, 3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_7, 4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_EndUnpack(__pyx_t_7, 5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_v_name);
    __pyx_v_name = __pyx_t_2;
    __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_v_arch);
    __pyx_v_arch = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_v_epoch);
    __pyx_v_epoch = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_ver);
    __pyx_v_ver = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_v_rel);
    __pyx_v_rel = __pyx_t_6;
    __pyx_t_6 = 0;
  }
 608: 
 609:         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
  /* "/home/david/coding/yum/yum/depsolve.pyx":609
 *         (name, arch, epoch, ver, rel) = po.pkgtup
 * 
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)             # <<<<<<<<<<<<<<
 *         if self.dsCallback: self.dsCallback.procConflict(name, niceformatneed)
 * 
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpmUtils); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__miscutils); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__formatRequire); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_needname);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_needname);
  __Pyx_GIVEREF(__pyx_v_needname);
  __Pyx_INCREF(__pyx_v_needversion);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_needversion);
  __Pyx_GIVEREF(__pyx_v_needversion);
  __Pyx_INCREF(__pyx_v_flags);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_flags);
  __Pyx_GIVEREF(__pyx_v_flags);
  __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __pyx_v_niceformatneed = __pyx_t_5;
  __pyx_t_5 = 0;
 610:         if self.dsCallback: self.dsCallback.procConflict(name, niceformatneed)
  /* "/home/david/coding/yum/yum/depsolve.pyx":610
 * 
 *         niceformatneed = rpmUtils.miscutils.formatRequire(needname, needversion, flags)
 *         if self.dsCallback: self.dsCallback.procConflict(name, niceformatneed)             # <<<<<<<<<<<<<<
 * 
 *         length = len(self.tsInfo)
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_8) {
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__procConflict); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_name);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_name);
    __Pyx_GIVEREF(__pyx_v_name);
    __Pyx_INCREF(__pyx_v_niceformatneed);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_niceformatneed);
    __Pyx_GIVEREF(__pyx_v_niceformatneed);
    __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 611: 
 612:         length = len(self.tsInfo)
  /* "/home/david/coding/yum/yum/depsolve.pyx":612
 *         if self.dsCallback: self.dsCallback.procConflict(name, niceformatneed)
 * 
 *         length = len(self.tsInfo)             # <<<<<<<<<<<<<<
 *         if flags & rpm.RPMSENSE_LESS:
 *             self.update(name=conflicting_po.name)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_length = __pyx_t_9;
 613:         if flags & rpm.RPMSENSE_LESS:
  /* "/home/david/coding/yum/yum/depsolve.pyx":613
 * 
 *         length = len(self.tsInfo)
 *         if flags & rpm.RPMSENSE_LESS:             # <<<<<<<<<<<<<<
 *             self.update(name=conflicting_po.name)
 *             txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
 */
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__RPMSENSE_LESS); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_And(__pyx_v_flags, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_8) {
 614:             self.update(name=conflicting_po.name)
    /* "/home/david/coding/yum/yum/depsolve.pyx":614
 *         length = len(self.tsInfo)
 *         if flags & rpm.RPMSENSE_LESS:
 *             self.update(name=conflicting_po.name)             # <<<<<<<<<<<<<<
 *             txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__name), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 615:             txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
    /* "/home/david/coding/yum/yum/depsolve.pyx":615
 *         if flags & rpm.RPMSENSE_LESS:
 *             self.update(name=conflicting_po.name)
 *             txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)             # <<<<<<<<<<<<<<
 *             if len(self.tsInfo) != length and txmbrs:
 *                 return CheckDeps, errormsgs
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_txmbrs);
    __pyx_v_txmbrs = __pyx_t_3;
    __pyx_t_3 = 0;
 616:             if len(self.tsInfo) != length and txmbrs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":616
 *             self.update(name=conflicting_po.name)
 *             txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:             # <<<<<<<<<<<<<<
 *                 return CheckDeps, errormsgs
 *         elif flags & rpm.RPMSENSE_GREATER:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = (__pyx_t_9 != __pyx_v_length);
    if (__pyx_t_8) {
      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_txmbrs); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_11 = __pyx_t_10;
    } else {
      __pyx_t_11 = __pyx_t_8;
    }
    if (__pyx_t_11) {
 617:                 return CheckDeps, errormsgs
      /* "/home/david/coding/yum/yum/depsolve.pyx":617
 *             txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 *                 return CheckDeps, errormsgs             # <<<<<<<<<<<<<<
 *         elif flags & rpm.RPMSENSE_GREATER:
 *             self.update(name=name)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_CheckDeps); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
      PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_errormsgs));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
      __pyx_t_3 = 0;
      __pyx_r = __pyx_t_4;
      __pyx_t_4 = 0;
      goto __pyx_L0;
      goto __pyx_L8;
    }
    __pyx_L8:;
    goto __pyx_L7;
  }
 618:         elif flags & rpm.RPMSENSE_GREATER:
  /* "/home/david/coding/yum/yum/depsolve.pyx":618
 *             if len(self.tsInfo) != length and txmbrs:
 *                 return CheckDeps, errormsgs
 *         elif flags & rpm.RPMSENSE_GREATER:             # <<<<<<<<<<<<<<
 *             self.update(name=name)
 *             txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 */
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__rpm); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__RPMSENSE_GREATER); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_And(__pyx_v_flags, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_11) {
 619:             self.update(name=name)
    /* "/home/david/coding/yum/yum/depsolve.pyx":619
 *                 return CheckDeps, errormsgs
 *         elif flags & rpm.RPMSENSE_GREATER:
 *             self.update(name=name)             # <<<<<<<<<<<<<<
 *             txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__name), __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 620:             txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
    /* "/home/david/coding/yum/yum/depsolve.pyx":620
 *         elif flags & rpm.RPMSENSE_GREATER:
 *             self.update(name=name)
 *             txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)             # <<<<<<<<<<<<<<
 *             if len(self.tsInfo) != length and txmbrs:
 *                 return CheckDeps, errormsgs
 */
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_5 = 0;
    __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_v_txmbrs);
    __pyx_v_txmbrs = __pyx_t_4;
    __pyx_t_4 = 0;
 621:             if len(self.tsInfo) != length and txmbrs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":621
 *             self.update(name=name)
 *             txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:             # <<<<<<<<<<<<<<
 *                 return CheckDeps, errormsgs
 * 
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_11 = (__pyx_t_9 != __pyx_v_length);
    if (__pyx_t_11) {
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_txmbrs); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __pyx_t_10 = __pyx_t_8;
    } else {
      __pyx_t_10 = __pyx_t_11;
    }
    if (__pyx_t_10) {
 622:                 return CheckDeps, errormsgs
      /* "/home/david/coding/yum/yum/depsolve.pyx":622
 *             txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 *             if len(self.tsInfo) != length and txmbrs:
 *                 return CheckDeps, errormsgs             # <<<<<<<<<<<<<<
 * 
 *         self.update(name=conflicting_po.name)
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_CheckDeps); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
      PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_errormsgs));
      __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
      __pyx_t_4 = 0;
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L0;
      goto __pyx_L9;
    }
    __pyx_L9:;
    goto __pyx_L7;
  }
  __pyx_L7:;
 623: 
 624:         self.update(name=conflicting_po.name)
  /* "/home/david/coding/yum/yum/depsolve.pyx":624
 *                 return CheckDeps, errormsgs
 * 
 *         self.update(name=conflicting_po.name)             # <<<<<<<<<<<<<<
 *         txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
 *         if len(self.tsInfo) != length and txmbrs:
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__name), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 625:         txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
  /* "/home/david/coding/yum/yum/depsolve.pyx":625
 * 
 *         self.update(name=conflicting_po.name)
 *         txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)             # <<<<<<<<<<<<<<
 *         if len(self.tsInfo) != length and txmbrs:
 *             return CheckDeps, errormsgs
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_3 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_txmbrs);
  __pyx_v_txmbrs = __pyx_t_6;
  __pyx_t_6 = 0;
 626:         if len(self.tsInfo) != length and txmbrs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":626
 *         self.update(name=conflicting_po.name)
 *         txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
 *         if len(self.tsInfo) != length and txmbrs:             # <<<<<<<<<<<<<<
 *             return CheckDeps, errormsgs
 *         self.update(name=name)
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_10 = (__pyx_t_9 != __pyx_v_length);
  if (__pyx_t_10) {
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_txmbrs); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_8 = __pyx_t_11;
  } else {
    __pyx_t_8 = __pyx_t_10;
  }
  if (__pyx_t_8) {
 627:             return CheckDeps, errormsgs
    /* "/home/david/coding/yum/yum/depsolve.pyx":627
 *         txmbrs = self.tsInfo.getMembersWithState(conflicting_po.pkgtup, TS_REMOVE_STATES)
 *         if len(self.tsInfo) != length and txmbrs:
 *             return CheckDeps, errormsgs             # <<<<<<<<<<<<<<
 *         self.update(name=name)
 *         txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_CheckDeps); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
    PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_errormsgs));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
    goto __pyx_L10;
  }
  __pyx_L10:;
 628:         self.update(name=name)
  /* "/home/david/coding/yum/yum/depsolve.pyx":628
 *         if len(self.tsInfo) != length and txmbrs:
 *             return CheckDeps, errormsgs
 *         self.update(name=name)             # <<<<<<<<<<<<<<
 *         txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 *         if len(self.tsInfo) != length and txmbrs:
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__update); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__name), __pyx_v_name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 629:         txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
  /* "/home/david/coding/yum/yum/depsolve.pyx":629
 *             return CheckDeps, errormsgs
 *         self.update(name=name)
 *         txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)             # <<<<<<<<<<<<<<
 *         if len(self.tsInfo) != length and txmbrs:
 *             return CheckDeps, errormsgs
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_txmbrs);
  __pyx_v_txmbrs = __pyx_t_5;
  __pyx_t_5 = 0;
 630:         if len(self.tsInfo) != length and txmbrs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":630
 *         self.update(name=name)
 *         txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 *         if len(self.tsInfo) != length and txmbrs:             # <<<<<<<<<<<<<<
 *             return CheckDeps, errormsgs
 * 
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = PyObject_Length(__pyx_t_5); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_8 = (__pyx_t_9 != __pyx_v_length);
  if (__pyx_t_8) {
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_txmbrs); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_11 = __pyx_t_10;
  } else {
    __pyx_t_11 = __pyx_t_8;
  }
  if (__pyx_t_11) {
 631:             return CheckDeps, errormsgs
    /* "/home/david/coding/yum/yum/depsolve.pyx":631
 *         txmbrs = self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES)
 *         if len(self.tsInfo) != length and txmbrs:
 *             return CheckDeps, errormsgs             # <<<<<<<<<<<<<<
 * 
 *         msg = '%s conflicts with %s' % (name, conflicting_po.name)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_CheckDeps); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
    PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_errormsgs));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L11;
  }
  __pyx_L11:;
 632: 
 633:         msg = '%s conflicts with %s' % (name, conflicting_po.name)
  /* "/home/david/coding/yum/yum/depsolve.pyx":633
 *             return CheckDeps, errormsgs
 * 
 *         msg = '%s conflicts with %s' % (name, conflicting_po.name)             # <<<<<<<<<<<<<<
 *         errormsgs.append(msg)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, msg)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_54), __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_msg);
  __pyx_v_msg = ((PyObject *)__pyx_t_3);
  __pyx_t_3 = 0;
 634:         errormsgs.append(msg)
  /* "/home/david/coding/yum/yum/depsolve.pyx":634
 * 
 *         msg = '%s conflicts with %s' % (name, conflicting_po.name)
 *         errormsgs.append(msg)             # <<<<<<<<<<<<<<
 *         self.verbose_logger.log(logginglevels.DEBUG_1, msg)
 *         CheckDeps = False
 */
  if (unlikely(__pyx_v_errormsgs == Py_None)) {
    PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
  }
  __pyx_t_12 = PyList_Append(((PyObject *)__pyx_v_errormsgs), __pyx_v_msg); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 634; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 635:         self.verbose_logger.log(logginglevels.DEBUG_1, msg)
  /* "/home/david/coding/yum/yum/depsolve.pyx":635
 *         msg = '%s conflicts with %s' % (name, conflicting_po.name)
 *         errormsgs.append(msg)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, msg)             # <<<<<<<<<<<<<<
 *         CheckDeps = False
 *         self.po_with_problems.add((po,None,errormsgs[-1]))
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_msg);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_msg);
  __Pyx_GIVEREF(__pyx_v_msg);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 636:         CheckDeps = False
  /* "/home/david/coding/yum/yum/depsolve.pyx":636
 *         errormsgs.append(msg)
 *         self.verbose_logger.log(logginglevels.DEBUG_1, msg)
 *         CheckDeps = False             # <<<<<<<<<<<<<<
 *         self.po_with_problems.add((po,None,errormsgs[-1]))
 *         return CheckDeps, errormsgs
 */
  __pyx_v_CheckDeps = 0;
 637:         self.po_with_problems.add((po,None,errormsgs[-1]))
  /* "/home/david/coding/yum/yum/depsolve.pyx":637
 *         self.verbose_logger.log(logginglevels.DEBUG_1, msg)
 *         CheckDeps = False
 *         self.po_with_problems.add((po,None,errormsgs[-1]))             # <<<<<<<<<<<<<<
 *         return CheckDeps, errormsgs
 * 
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__po_with_problems); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__add); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_errormsgs), -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_po);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_po);
  __Pyx_GIVEREF(__pyx_v_po);
  __Pyx_INCREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_5, 1, Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 638:         return CheckDeps, errormsgs
  /* "/home/david/coding/yum/yum/depsolve.pyx":638
 *         CheckDeps = False
 *         self.po_with_problems.add((po,None,errormsgs[-1]))
 *         return CheckDeps, errormsgs             # <<<<<<<<<<<<<<
 * 
 *     def _undoDepInstalls(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_CheckDeps); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_errormsgs));
  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_errormsgs));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_errormsgs));
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._processConflict");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_errormsgs);
  __Pyx_DECREF(__pyx_v_needname);
  __Pyx_DECREF(__pyx_v_flags);
  __Pyx_DECREF(__pyx_v_needversion);
  __Pyx_DECREF(__pyx_v_name);
  __Pyx_DECREF(__pyx_v_arch);
  __Pyx_DECREF(__pyx_v_epoch);
  __Pyx_DECREF(__pyx_v_ver);
  __Pyx_DECREF(__pyx_v_rel);
  __Pyx_DECREF(__pyx_v_niceformatneed);
  __Pyx_DECREF(__pyx_v_txmbrs);
  __Pyx_DECREF(__pyx_v_msg);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 639: 
 640:     def _undoDepInstalls(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":640
 *         return CheckDeps, errormsgs
 * 
 *     def _undoDepInstalls(self):             # <<<<<<<<<<<<<<
 *         # clean up after ourselves in the case of failures
 *         for txmbr in self.tsInfo:
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__undoDepInstalls(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__undoDepInstalls = {__Pyx_NAMESTR("_undoDepInstalls"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__undoDepInstalls, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__undoDepInstalls(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_undoDepInstalls");
  __pyx_self = __pyx_self;
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":640
 *         return CheckDeps, errormsgs
 * 
 *     def _undoDepInstalls(self):             # <<<<<<<<<<<<<<
 *         # clean up after ourselves in the case of failures
 *         for txmbr in self.tsInfo:
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__undoDepInstalls, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___undoDepInstalls, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 641:         # clean up after ourselves in the case of failures
 642:         for txmbr in self.tsInfo:
  /* "/home/david/coding/yum/yum/depsolve.pyx":642
 *     def _undoDepInstalls(self):
 *         # clean up after ourselves in the case of failures
 *         for txmbr in self.tsInfo:             # <<<<<<<<<<<<<<
 *             if txmbr.isDep:
 *                 self.tsInfo.remove(txmbr.pkgtup)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = 0; __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_1 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_t_1++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_2); __pyx_t_1++;
    } else {
      __pyx_t_2 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_2) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_2;
    __pyx_t_2 = 0;
 643:             if txmbr.isDep:
    /* "/home/david/coding/yum/yum/depsolve.pyx":643
 *         # clean up after ourselves in the case of failures
 *         for txmbr in self.tsInfo:
 *             if txmbr.isDep:             # <<<<<<<<<<<<<<
 *                 self.tsInfo.remove(txmbr.pkgtup)
 * 
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__isDep); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {
 644:                 self.tsInfo.remove(txmbr.pkgtup)
      /* "/home/david/coding/yum/yum/depsolve.pyx":644
 *         for txmbr in self.tsInfo:
 *             if txmbr.isDep:
 *                 self.tsInfo.remove(txmbr.pkgtup)             # <<<<<<<<<<<<<<
 * 
 *     def prof_resolveDeps(self):
 */
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L7;
    }
    __pyx_L7:;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._undoDepInstalls");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 645: 
 646:     def prof_resolveDeps(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":646
 *                 self.tsInfo.remove(txmbr.pkgtup)
 * 
 *     def prof_resolveDeps(self):             # <<<<<<<<<<<<<<
 *         fn = "anaconda.prof.0"
 *         import hotshot, hotshot.stats
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_prof_resolveDeps(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_prof_resolveDeps = {__Pyx_NAMESTR("prof_resolveDeps"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_prof_resolveDeps, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_prof_resolveDeps(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_fn;
  PyObject *__pyx_v_hotshot;
  PyObject *__pyx_v_prof;
  PyObject *__pyx_v_rc;
  PyObject *__pyx_v_stats;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("prof_resolveDeps");
  __pyx_self = __pyx_self;
  __pyx_v_fn = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_hotshot = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_prof = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rc = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_stats = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":646
 *                 self.tsInfo.remove(txmbr.pkgtup)
 * 
 *     def prof_resolveDeps(self):             # <<<<<<<<<<<<<<
 *         fn = "anaconda.prof.0"
 *         import hotshot, hotshot.stats
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_prof_resolveDeps, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__prof_resolveDeps, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 647:         fn = "anaconda.prof.0"
  /* "/home/david/coding/yum/yum/depsolve.pyx":647
 * 
 *     def prof_resolveDeps(self):
 *         fn = "anaconda.prof.0"             # <<<<<<<<<<<<<<
 *         import hotshot, hotshot.stats
 *         prof = hotshot.Profile(fn)
 */
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_55));
  __Pyx_DECREF(__pyx_v_fn);
  __pyx_v_fn = ((PyObject *)__pyx_kp_s_55);
 648:         import hotshot, hotshot.stats
  /* "/home/david/coding/yum/yum/depsolve.pyx":648
 *     def prof_resolveDeps(self):
 *         fn = "anaconda.prof.0"
 *         import hotshot, hotshot.stats             # <<<<<<<<<<<<<<
 *         prof = hotshot.Profile(fn)
 *         rc = prof.runcall(self.resolveDeps)
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__hotshot), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_hotshot);
  __pyx_v_hotshot = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s_56), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_hotshot);
  __pyx_v_hotshot = __pyx_t_1;
  __pyx_t_1 = 0;
 649:         prof = hotshot.Profile(fn)
  /* "/home/david/coding/yum/yum/depsolve.pyx":649
 *         fn = "anaconda.prof.0"
 *         import hotshot, hotshot.stats
 *         prof = hotshot.Profile(fn)             # <<<<<<<<<<<<<<
 *         rc = prof.runcall(self.resolveDeps)
 *         prof.close()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_hotshot, __pyx_n_s__Profile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_fn);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_fn);
  __Pyx_GIVEREF(__pyx_v_fn);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_prof);
  __pyx_v_prof = __pyx_t_3;
  __pyx_t_3 = 0;
 650:         rc = prof.runcall(self.resolveDeps)
  /* "/home/david/coding/yum/yum/depsolve.pyx":650
 *         import hotshot, hotshot.stats
 *         prof = hotshot.Profile(fn)
 *         rc = prof.runcall(self.resolveDeps)             # <<<<<<<<<<<<<<
 *         prof.close()
 *         print "done running depcheck"
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_prof, __pyx_n_s__runcall); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__resolveDeps); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_rc);
  __pyx_v_rc = __pyx_t_2;
  __pyx_t_2 = 0;
 651:         prof.close()
  /* "/home/david/coding/yum/yum/depsolve.pyx":651
 *         prof = hotshot.Profile(fn)
 *         rc = prof.runcall(self.resolveDeps)
 *         prof.close()             # <<<<<<<<<<<<<<
 *         print "done running depcheck"
 *         stats = hotshot.stats.load(fn)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_prof, __pyx_n_s__close); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 652:         print "done running depcheck"
  /* "/home/david/coding/yum/yum/depsolve.pyx":652
 *         rc = prof.runcall(self.resolveDeps)
 *         prof.close()
 *         print "done running depcheck"             # <<<<<<<<<<<<<<
 *         stats = hotshot.stats.load(fn)
 *         stats.strip_dirs()
 */
  if (__Pyx_PrintOne(0, ((PyObject *)__pyx_kp_s_57)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 653:         stats = hotshot.stats.load(fn)
  /* "/home/david/coding/yum/yum/depsolve.pyx":653
 *         prof.close()
 *         print "done running depcheck"
 *         stats = hotshot.stats.load(fn)             # <<<<<<<<<<<<<<
 *         stats.strip_dirs()
 *         stats.sort_stats('time', 'calls')
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_hotshot, __pyx_n_s__stats); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__load); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_fn);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_fn);
  __Pyx_GIVEREF(__pyx_v_fn);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_stats);
  __pyx_v_stats = __pyx_t_3;
  __pyx_t_3 = 0;
 654:         stats.strip_dirs()
  /* "/home/david/coding/yum/yum/depsolve.pyx":654
 *         print "done running depcheck"
 *         stats = hotshot.stats.load(fn)
 *         stats.strip_dirs()             # <<<<<<<<<<<<<<
 *         stats.sort_stats('time', 'calls')
 *         stats.print_stats(20)
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_stats, __pyx_n_s__strip_dirs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 655:         stats.sort_stats('time', 'calls')
  /* "/home/david/coding/yum/yum/depsolve.pyx":655
 *         stats = hotshot.stats.load(fn)
 *         stats.strip_dirs()
 *         stats.sort_stats('time', 'calls')             # <<<<<<<<<<<<<<
 *         stats.print_stats(20)
 *         return rc
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_stats, __pyx_n_s__sort_stats); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__time));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__time));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__time));
  __Pyx_INCREF(((PyObject *)__pyx_n_s__calls));
  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_n_s__calls));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__calls));
  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 656:         stats.print_stats(20)
  /* "/home/david/coding/yum/yum/depsolve.pyx":656
 *         stats.strip_dirs()
 *         stats.sort_stats('time', 'calls')
 *         stats.print_stats(20)             # <<<<<<<<<<<<<<
 *         return rc
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_stats, __pyx_n_s__print_stats); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_20);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_20);
  __Pyx_GIVEREF(__pyx_int_20);
  __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 657:         return rc
  /* "/home/david/coding/yum/yum/depsolve.pyx":657
 *         stats.sort_stats('time', 'calls')
 *         stats.print_stats(20)
 *         return rc             # <<<<<<<<<<<<<<
 * 
 *     def cprof_resolveDeps(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_rc);
  __pyx_r = __pyx_v_rc;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.prof_resolveDeps");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_fn);
  __Pyx_DECREF(__pyx_v_hotshot);
  __Pyx_DECREF(__pyx_v_prof);
  __Pyx_DECREF(__pyx_v_rc);
  __Pyx_DECREF(__pyx_v_stats);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 658: 
 659:     def cprof_resolveDeps(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":659
 *         return rc
 * 
 *     def cprof_resolveDeps(self):             # <<<<<<<<<<<<<<
 *         import cProfile, pstats
 *         prof = cProfile.Profile()
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_cprof_resolveDeps(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_cprof_resolveDeps = {__Pyx_NAMESTR("cprof_resolveDeps"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_cprof_resolveDeps, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_cprof_resolveDeps(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_cProfile;
  PyObject *__pyx_v_pstats;
  PyObject *__pyx_v_prof;
  PyObject *__pyx_v_rc;
  PyObject *__pyx_v_p;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("cprof_resolveDeps");
  __pyx_self = __pyx_self;
  __pyx_v_cProfile = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pstats = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_prof = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rc = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_p = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":659
 *         return rc
 * 
 *     def cprof_resolveDeps(self):             # <<<<<<<<<<<<<<
 *         import cProfile, pstats
 *         prof = cProfile.Profile()
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_cprof_resolveDeps, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__cprof_resolveDeps, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 660:         import cProfile, pstats
  /* "/home/david/coding/yum/yum/depsolve.pyx":660
 * 
 *     def cprof_resolveDeps(self):
 *         import cProfile, pstats             # <<<<<<<<<<<<<<
 *         prof = cProfile.Profile()
 *         rc = prof.runcall(self.resolveDeps)
 */
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__cProfile), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_cProfile);
  __pyx_v_cProfile = __pyx_t_1;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__pstats), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_pstats);
  __pyx_v_pstats = __pyx_t_1;
  __pyx_t_1 = 0;
 661:         prof = cProfile.Profile()
  /* "/home/david/coding/yum/yum/depsolve.pyx":661
 *     def cprof_resolveDeps(self):
 *         import cProfile, pstats
 *         prof = cProfile.Profile()             # <<<<<<<<<<<<<<
 *         rc = prof.runcall(self.resolveDeps)
 *         prof.dump_stats("yumprof")
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_cProfile, __pyx_n_s__Profile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_prof);
  __pyx_v_prof = __pyx_t_2;
  __pyx_t_2 = 0;
 662:         rc = prof.runcall(self.resolveDeps)
  /* "/home/david/coding/yum/yum/depsolve.pyx":662
 *         import cProfile, pstats
 *         prof = cProfile.Profile()
 *         rc = prof.runcall(self.resolveDeps)             # <<<<<<<<<<<<<<
 *         prof.dump_stats("yumprof")
 *         print "done running depcheck"
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_prof, __pyx_n_s__runcall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__resolveDeps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_rc);
  __pyx_v_rc = __pyx_t_1;
  __pyx_t_1 = 0;
 663:         prof.dump_stats("yumprof")
  /* "/home/david/coding/yum/yum/depsolve.pyx":663
 *         prof = cProfile.Profile()
 *         rc = prof.runcall(self.resolveDeps)
 *         prof.dump_stats("yumprof")             # <<<<<<<<<<<<<<
 *         print "done running depcheck"
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_prof, __pyx_n_s__dump_stats); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__yumprof));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__yumprof));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__yumprof));
  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 664:         print "done running depcheck"
  /* "/home/david/coding/yum/yum/depsolve.pyx":664
 *         rc = prof.runcall(self.resolveDeps)
 *         prof.dump_stats("yumprof")
 *         print "done running depcheck"             # <<<<<<<<<<<<<<
 * 
 *         p = pstats.Stats('yumprof')
 */
  if (__Pyx_PrintOne(0, ((PyObject *)__pyx_kp_s_57)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 665: 
 666:         p = pstats.Stats('yumprof')
  /* "/home/david/coding/yum/yum/depsolve.pyx":666
 *         print "done running depcheck"
 * 
 *         p = pstats.Stats('yumprof')             # <<<<<<<<<<<<<<
 *         p.strip_dirs()
 *         p.sort_stats('time')
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_pstats, __pyx_n_s__Stats); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__yumprof));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__yumprof));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__yumprof));
  __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_p);
  __pyx_v_p = __pyx_t_1;
  __pyx_t_1 = 0;
 667:         p.strip_dirs()
  /* "/home/david/coding/yum/yum/depsolve.pyx":667
 * 
 *         p = pstats.Stats('yumprof')
 *         p.strip_dirs()             # <<<<<<<<<<<<<<
 *         p.sort_stats('time')
 *         p.print_stats(20)
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_p, __pyx_n_s__strip_dirs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 668:         p.sort_stats('time')
  /* "/home/david/coding/yum/yum/depsolve.pyx":668
 *         p = pstats.Stats('yumprof')
 *         p.strip_dirs()
 *         p.sort_stats('time')             # <<<<<<<<<<<<<<
 *         p.print_stats(20)
 *         return rc
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_p, __pyx_n_s__sort_stats); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__time));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__time));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__time));
  __pyx_t_2 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 669:         p.print_stats(20)
  /* "/home/david/coding/yum/yum/depsolve.pyx":669
 *         p.strip_dirs()
 *         p.sort_stats('time')
 *         p.print_stats(20)             # <<<<<<<<<<<<<<
 *         return rc
 * 
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_p, __pyx_n_s__print_stats); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_int_20);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_20);
  __Pyx_GIVEREF(__pyx_int_20);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 670:         return rc
  /* "/home/david/coding/yum/yum/depsolve.pyx":670
 *         p.sort_stats('time')
 *         p.print_stats(20)
 *         return rc             # <<<<<<<<<<<<<<
 * 
 *     def resolveDeps(self, full_check=True):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_rc);
  __pyx_r = __pyx_v_rc;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.cprof_resolveDeps");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_cProfile);
  __Pyx_DECREF(__pyx_v_pstats);
  __Pyx_DECREF(__pyx_v_prof);
  __Pyx_DECREF(__pyx_v_rc);
  __Pyx_DECREF(__pyx_v_p);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 671: 
 672:     def resolveDeps(self, full_check=True):
/* "/home/david/coding/yum/yum/depsolve.pyx":672
 *         return rc
 * 
 *     def resolveDeps(self, full_check=True):             # <<<<<<<<<<<<<<
 * 
 *         if not len(self.tsInfo):
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_resolveDeps(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_resolveDeps = {__Pyx_NAMESTR("resolveDeps"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_resolveDeps, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_resolveDeps(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_full_check = 0;
  PyObject *__pyx_v_CheckDeps;
  PyObject *__pyx_v_CheckRemoves;
  PyObject *__pyx_v_CheckInstalls;
  long __pyx_v_missingdep;
  PyObject *__pyx_v_errors;
  PyObject *__pyx_v_checkinstalls;
  PyObject *__pyx_v_checkremoves;
  PyObject *__pyx_v_missing;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_dep;
  PyObject *__pyx_v_checkdep;
  PyObject *__pyx_v_errormsgs;
  PyObject *__pyx_v_conflict;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_wpo;
  PyObject *__pyx_v_err;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__full_check,0};
  __Pyx_RefNannySetupContext("resolveDeps");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    values[1] = __pyx_k_58;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__full_check);
        if (value) { values[1] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "resolveDeps") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_full_check = values[1];
  } else {
    __pyx_v_full_check = __pyx_k_58;
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: __pyx_v_full_check = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("resolveDeps", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.resolveDeps");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_CheckDeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_CheckRemoves = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_CheckInstalls = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_errors = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_checkinstalls = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_checkremoves = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missing = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_dep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_checkdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_errormsgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_conflict = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_wpo = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_err = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":672
 *         return rc
 * 
 *     def resolveDeps(self, full_check=True):             # <<<<<<<<<<<<<<
 * 
 *         if not len(self.tsInfo):
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k_58 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_resolveDeps, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__resolveDeps, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 673: 
 674:         if not len(self.tsInfo):
  /* "/home/david/coding/yum/yum/depsolve.pyx":674
 *     def resolveDeps(self, full_check=True):
 * 
 *         if not len(self.tsInfo):             # <<<<<<<<<<<<<<
 *             return (0, [_('Success - empty transaction')])
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (!__pyx_t_2);
  if (__pyx_t_3) {
 675:             return (0, [_('Success - empty transaction')])
    /* "/home/david/coding/yum/yum/depsolve.pyx":675
 * 
 *         if not len(self.tsInfo):
 *             return (0, [_('Success - empty transaction')])             # <<<<<<<<<<<<<<
 * 
 *         self.po_with_problems = set()
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_59));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_59));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_59));
    __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_t_4));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 676: 
 677:         self.po_with_problems = set()
  /* "/home/david/coding/yum/yum/depsolve.pyx":677
 *             return (0, [_('Success - empty transaction')])
 * 
 *         self.po_with_problems = set()             # <<<<<<<<<<<<<<
 *         self._working_po = None
 *         self._last_req = None
 */
  __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__po_with_problems, ((PyObject *)__pyx_t_5)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 678:         self._working_po = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":678
 * 
 *         self.po_with_problems = set()
 *         self._working_po = None             # <<<<<<<<<<<<<<
 *         self._last_req = None
 *         self.tsInfo.resetResolved(hard=False)
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___working_po, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 679:         self._last_req = None
  /* "/home/david/coding/yum/yum/depsolve.pyx":679
 *         self.po_with_problems = set()
 *         self._working_po = None
 *         self._last_req = None             # <<<<<<<<<<<<<<
 *         self.tsInfo.resetResolved(hard=False)
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___last_req, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 680:         self.tsInfo.resetResolved(hard=False)
  /* "/home/david/coding/yum/yum/depsolve.pyx":680
 *         self._working_po = None
 *         self._last_req = None
 *         self.tsInfo.resetResolved(hard=False)             # <<<<<<<<<<<<<<
 * 
 *         CheckDeps = True
 */
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__resetResolved); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__hard), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 681: 
 682:         CheckDeps = True
  /* "/home/david/coding/yum/yum/depsolve.pyx":682
 *         self.tsInfo.resetResolved(hard=False)
 * 
 *         CheckDeps = True             # <<<<<<<<<<<<<<
 *         CheckRemoves = full_check
 *         CheckInstalls = full_check
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_CheckDeps);
  __pyx_v_CheckDeps = __pyx_t_1;
  __pyx_t_1 = 0;
 683:         CheckRemoves = full_check
  /* "/home/david/coding/yum/yum/depsolve.pyx":683
 * 
 *         CheckDeps = True
 *         CheckRemoves = full_check             # <<<<<<<<<<<<<<
 *         CheckInstalls = full_check
 * 
 */
  __Pyx_INCREF(__pyx_v_full_check);
  __Pyx_DECREF(__pyx_v_CheckRemoves);
  __pyx_v_CheckRemoves = __pyx_v_full_check;
 684:         CheckInstalls = full_check
  /* "/home/david/coding/yum/yum/depsolve.pyx":684
 *         CheckDeps = True
 *         CheckRemoves = full_check
 *         CheckInstalls = full_check             # <<<<<<<<<<<<<<
 * 
 *         missingdep = 0
 */
  __Pyx_INCREF(__pyx_v_full_check);
  __Pyx_DECREF(__pyx_v_CheckInstalls);
  __pyx_v_CheckInstalls = __pyx_v_full_check;
 685: 
 686:         missingdep = 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":686
 *         CheckInstalls = full_check
 * 
 *         missingdep = 0             # <<<<<<<<<<<<<<
 *         errors = []
 * 
 */
  __pyx_v_missingdep = 0;
 687:         errors = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":687
 * 
 *         missingdep = 0
 *         errors = []             # <<<<<<<<<<<<<<
 * 
 *         if self.dsCallback: self.dsCallback.start()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(__pyx_v_errors);
  __pyx_v_errors = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
 688: 
 689:         if self.dsCallback: self.dsCallback.start()
  /* "/home/david/coding/yum/yum/depsolve.pyx":689
 *         errors = []
 * 
 *         if self.dsCallback: self.dsCallback.start()             # <<<<<<<<<<<<<<
 * 
 *         while True:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__start); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    goto __pyx_L7;
  }
  __pyx_L7:;
 690: 
 691:         while True:
  /* "/home/david/coding/yum/yum/depsolve.pyx":691
 *         if self.dsCallback: self.dsCallback.start()
 * 
 *         while True:             # <<<<<<<<<<<<<<
 * 
 *             CheckDeps = True
 */
  while (1) {
    if (!1) break;
 692: 
 693:             CheckDeps = True
    /* "/home/david/coding/yum/yum/depsolve.pyx":693
 *         while True:
 * 
 *             CheckDeps = True             # <<<<<<<<<<<<<<
 * 
 *             # check Requires
 */
    __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_v_CheckDeps);
    __pyx_v_CheckDeps = __pyx_t_1;
    __pyx_t_1 = 0;
 694: 
 695:             # check Requires
 696:             while CheckDeps:
    /* "/home/david/coding/yum/yum/depsolve.pyx":696
 * 
 *             # check Requires
 *             while CheckDeps:             # <<<<<<<<<<<<<<
 *                 if self.dsCallback: self.dsCallback.tscheck()
 *                 CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
 */
    while (1) {
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_CheckDeps); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (!__pyx_t_3) break;
 697:                 if self.dsCallback: self.dsCallback.tscheck()
      /* "/home/david/coding/yum/yum/depsolve.pyx":697
 *             # check Requires
 *             while CheckDeps:
 *                 if self.dsCallback: self.dsCallback.tscheck()             # <<<<<<<<<<<<<<
 *                 CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
 *                 CheckInstalls |= checkinstalls
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_3) {
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__tscheck); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L12;
      }
      __pyx_L12:;
 698:                 CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
      /* "/home/david/coding/yum/yum/depsolve.pyx":698
 *             while CheckDeps:
 *                 if self.dsCallback: self.dsCallback.tscheck()
 *                 CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)             # <<<<<<<<<<<<<<
 *                 CheckInstalls |= checkinstalls
 *                 CheckRemoves |= checkremoves
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___resolveRequires); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_errors);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_errors);
      __Pyx_GIVEREF(__pyx_v_errors);
      __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 4)) {
        PyObject* tuple = __pyx_t_4;
        __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
        __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
        __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
        __pyx_t_7 = PyTuple_GET_ITEM(tuple, 3); __Pyx_INCREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_v_CheckDeps);
        __pyx_v_CheckDeps = __pyx_t_5;
        __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_v_checkinstalls);
        __pyx_v_checkinstalls = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_checkremoves);
        __pyx_v_checkremoves = __pyx_t_6;
        __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_missing);
        __pyx_v_missing = __pyx_t_7;
        __pyx_t_7 = 0;
      } else {
        __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_8, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_8, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_8, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_8, 3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        if (__Pyx_EndUnpack(__pyx_t_8, 4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_v_CheckDeps);
        __pyx_v_CheckDeps = __pyx_t_5;
        __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_v_checkinstalls);
        __pyx_v_checkinstalls = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_checkremoves);
        __pyx_v_checkremoves = __pyx_t_6;
        __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_missing);
        __pyx_v_missing = __pyx_t_7;
        __pyx_t_7 = 0;
      }
 699:                 CheckInstalls |= checkinstalls
      /* "/home/david/coding/yum/yum/depsolve.pyx":699
 *                 if self.dsCallback: self.dsCallback.tscheck()
 *                 CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
 *                 CheckInstalls |= checkinstalls             # <<<<<<<<<<<<<<
 *                 CheckRemoves |= checkremoves
 * 
 */
      __pyx_t_4 = PyNumber_InPlaceOr(__pyx_v_CheckInstalls, __pyx_v_checkinstalls); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_v_CheckInstalls);
      __pyx_v_CheckInstalls = __pyx_t_4;
      __pyx_t_4 = 0;
 700:                 CheckRemoves |= checkremoves
      /* "/home/david/coding/yum/yum/depsolve.pyx":700
 *                 CheckDeps, checkinstalls, checkremoves, missing = self._resolveRequires(errors)
 *                 CheckInstalls |= checkinstalls
 *                 CheckRemoves |= checkremoves             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_t_4 = PyNumber_InPlaceOr(__pyx_v_CheckRemoves, __pyx_v_checkremoves); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_v_CheckRemoves);
      __pyx_v_CheckRemoves = __pyx_t_4;
      __pyx_t_4 = 0;
    }
 701: 
 702: 
 703:             # check global FileRequires
 704:             if CheckRemoves:
    /* "/home/david/coding/yum/yum/depsolve.pyx":704
 * 
 *             # check global FileRequires
 *             if CheckRemoves:             # <<<<<<<<<<<<<<
 *                 CheckRemoves = False
 *                 for po, dep in self._checkFileRequires():
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_CheckRemoves); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
 705:                 CheckRemoves = False
      /* "/home/david/coding/yum/yum/depsolve.pyx":705
 *             # check global FileRequires
 *             if CheckRemoves:
 *                 CheckRemoves = False             # <<<<<<<<<<<<<<
 *                 for po, dep in self._checkFileRequires():
 *                     (checkdep, missing, errormsgs) = self._processReq(po, dep)
 */
      __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_v_CheckRemoves);
      __pyx_v_CheckRemoves = __pyx_t_4;
      __pyx_t_4 = 0;
 706:                 for po, dep in self._checkFileRequires():
      /* "/home/david/coding/yum/yum/depsolve.pyx":706
 *             if CheckRemoves:
 *                 CheckRemoves = False
 *                 for po, dep in self._checkFileRequires():             # <<<<<<<<<<<<<<
 *                     (checkdep, missing, errormsgs) = self._processReq(po, dep)
 *                     CheckDeps |= checkdep
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___checkFileRequires); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (PyList_CheckExact(__pyx_t_7) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4);
      } else {
        __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break;
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
          if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++;
        } else {
          __pyx_t_7 = PyIter_Next(__pyx_t_4);
          if (!__pyx_t_7) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        if (PyTuple_CheckExact(__pyx_t_7) && likely(PyTuple_GET_SIZE(__pyx_t_7) == 2)) {
          PyObject* tuple = __pyx_t_7;
          __pyx_t_6 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_6);
          __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_v_po);
          __pyx_v_po = __pyx_t_6;
          __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_v_dep);
          __pyx_v_dep = __pyx_t_1;
          __pyx_t_1 = 0;
        } else {
          __pyx_t_5 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_5, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_5, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          if (__Pyx_EndUnpack(__pyx_t_5, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_v_po);
          __pyx_v_po = __pyx_t_6;
          __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_v_dep);
          __pyx_v_dep = __pyx_t_1;
          __pyx_t_1 = 0;
        }
 707:                     (checkdep, missing, errormsgs) = self._processReq(po, dep)
        /* "/home/david/coding/yum/yum/depsolve.pyx":707
 *                 CheckRemoves = False
 *                 for po, dep in self._checkFileRequires():
 *                     (checkdep, missing, errormsgs) = self._processReq(po, dep)             # <<<<<<<<<<<<<<
 *                     CheckDeps |= checkdep
 *                     errors += errormsgs
 */
        __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___processReq); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_dep);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_dep);
        __Pyx_GIVEREF(__pyx_v_dep);
        __pyx_t_6 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (PyTuple_CheckExact(__pyx_t_6) && likely(PyTuple_GET_SIZE(__pyx_t_6) == 3)) {
          PyObject* tuple = __pyx_t_6;
          __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
          __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
          __pyx_t_5 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_v_checkdep);
          __pyx_v_checkdep = __pyx_t_1;
          __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_v_missing);
          __pyx_v_missing = __pyx_t_7;
          __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_v_errormsgs);
          __pyx_v_errormsgs = __pyx_t_5;
          __pyx_t_5 = 0;
        } else {
          __pyx_t_8 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_8, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_8, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_8, 2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          if (__Pyx_EndUnpack(__pyx_t_8, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_v_checkdep);
          __pyx_v_checkdep = __pyx_t_1;
          __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_v_missing);
          __pyx_v_missing = __pyx_t_7;
          __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_v_errormsgs);
          __pyx_v_errormsgs = __pyx_t_5;
          __pyx_t_5 = 0;
        }
 708:                     CheckDeps |= checkdep
        /* "/home/david/coding/yum/yum/depsolve.pyx":708
 *                 for po, dep in self._checkFileRequires():
 *                     (checkdep, missing, errormsgs) = self._processReq(po, dep)
 *                     CheckDeps |= checkdep             # <<<<<<<<<<<<<<
 *                     errors += errormsgs
 * 
 */
        __pyx_t_6 = PyNumber_InPlaceOr(__pyx_v_CheckDeps, __pyx_v_checkdep); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_v_CheckDeps);
        __pyx_v_CheckDeps = __pyx_t_6;
        __pyx_t_6 = 0;
 709:                     errors += errormsgs
        /* "/home/david/coding/yum/yum/depsolve.pyx":709
 *                     (checkdep, missing, errormsgs) = self._processReq(po, dep)
 *                     CheckDeps |= checkdep
 *                     errors += errormsgs             # <<<<<<<<<<<<<<
 * 
 *                 if CheckDeps:
 */
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_errors, __pyx_v_errormsgs); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_v_errors);
        __pyx_v_errors = __pyx_t_6;
        __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 710: 
 711:                 if CheckDeps:
      /* "/home/david/coding/yum/yum/depsolve.pyx":711
 *                     errors += errormsgs
 * 
 *                 if CheckDeps:             # <<<<<<<<<<<<<<
 *                     if self.dsCallback: self.dsCallback.restartLoop()
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
 */
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_CheckDeps); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_3) {
 712:                     if self.dsCallback: self.dsCallback.restartLoop()
        /* "/home/david/coding/yum/yum/depsolve.pyx":712
 * 
 *                 if CheckDeps:
 *                     if self.dsCallback: self.dsCallback.restartLoop()             # <<<<<<<<<<<<<<
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
 *                     continue
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_3) {
          __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__restartLoop); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L17;
        }
        __pyx_L17:;
 713:                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
        /* "/home/david/coding/yum/yum/depsolve.pyx":713
 *                 if CheckDeps:
 *                     if self.dsCallback: self.dsCallback.restartLoop()
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_60));
        PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_60));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_60));
        __pyx_t_1 = PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        __pyx_t_5 = 0;
        __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 714:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":714
 *                     if self.dsCallback: self.dsCallback.restartLoop()
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *             # check Conflicts
 */
        goto __pyx_L8_continue;
        goto __pyx_L16;
      }
      __pyx_L16:;
      goto __pyx_L13;
    }
    __pyx_L13:;
 715: 
 716:             # check Conflicts
 717:             if CheckInstalls:
    /* "/home/david/coding/yum/yum/depsolve.pyx":717
 * 
 *             # check Conflicts
 *             if CheckInstalls:             # <<<<<<<<<<<<<<
 *                 CheckInstalls = False
 *                 for conflict in self._checkConflicts():
 */
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_CheckInstalls); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_3) {
 718:                 CheckInstalls = False
      /* "/home/david/coding/yum/yum/depsolve.pyx":718
 *             # check Conflicts
 *             if CheckInstalls:
 *                 CheckInstalls = False             # <<<<<<<<<<<<<<
 *                 for conflict in self._checkConflicts():
 *                     (checkdep, errormsgs) = self._processConflict(*conflict)
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_CheckInstalls);
      __pyx_v_CheckInstalls = __pyx_t_1;
      __pyx_t_1 = 0;
 719:                 for conflict in self._checkConflicts():
      /* "/home/david/coding/yum/yum/depsolve.pyx":719
 *             if CheckInstalls:
 *                 CheckInstalls = False
 *                 for conflict in self._checkConflicts():             # <<<<<<<<<<<<<<
 *                     (checkdep, errormsgs) = self._processConflict(*conflict)
 *                     CheckDeps |= checkdep
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___checkConflicts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyList_CheckExact(__pyx_t_7) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_2 = 0; __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1);
      } else {
        __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
          if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++;
        } else {
          __pyx_t_7 = PyIter_Next(__pyx_t_1);
          if (!__pyx_t_7) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_DECREF(__pyx_v_conflict);
        __pyx_v_conflict = __pyx_t_7;
        __pyx_t_7 = 0;
 720:                     (checkdep, errormsgs) = self._processConflict(*conflict)
        /* "/home/david/coding/yum/yum/depsolve.pyx":720
 *                 CheckInstalls = False
 *                 for conflict in self._checkConflicts():
 *                     (checkdep, errormsgs) = self._processConflict(*conflict)             # <<<<<<<<<<<<<<
 *                     CheckDeps |= checkdep
 *                     errors += errormsgs
 */
        __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___processConflict); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = PySequence_Tuple(__pyx_v_conflict); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_6));
        __pyx_t_5 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
        if (PyTuple_CheckExact(__pyx_t_5) && likely(PyTuple_GET_SIZE(__pyx_t_5) == 2)) {
          PyObject* tuple = __pyx_t_5;
          __pyx_t_6 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_6);
          __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_v_checkdep);
          __pyx_v_checkdep = __pyx_t_6;
          __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_v_errormsgs);
          __pyx_v_errormsgs = __pyx_t_7;
          __pyx_t_7 = 0;
        } else {
          __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          if (__Pyx_EndUnpack(__pyx_t_4, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_v_checkdep);
          __pyx_v_checkdep = __pyx_t_6;
          __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_v_errormsgs);
          __pyx_v_errormsgs = __pyx_t_7;
          __pyx_t_7 = 0;
        }
 721:                     CheckDeps |= checkdep
        /* "/home/david/coding/yum/yum/depsolve.pyx":721
 *                 for conflict in self._checkConflicts():
 *                     (checkdep, errormsgs) = self._processConflict(*conflict)
 *                     CheckDeps |= checkdep             # <<<<<<<<<<<<<<
 *                     errors += errormsgs
 *                     if checkdep:
 */
        __pyx_t_5 = PyNumber_InPlaceOr(__pyx_v_CheckDeps, __pyx_v_checkdep); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_v_CheckDeps);
        __pyx_v_CheckDeps = __pyx_t_5;
        __pyx_t_5 = 0;
 722:                     errors += errormsgs
        /* "/home/david/coding/yum/yum/depsolve.pyx":722
 *                     (checkdep, errormsgs) = self._processConflict(*conflict)
 *                     CheckDeps |= checkdep
 *                     errors += errormsgs             # <<<<<<<<<<<<<<
 *                     if checkdep:
 *                         break # The next conflict might be the same pkg
 */
        __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_errors, __pyx_v_errormsgs); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_v_errors);
        __pyx_v_errors = __pyx_t_5;
        __pyx_t_5 = 0;
 723:                     if checkdep:
        /* "/home/david/coding/yum/yum/depsolve.pyx":723
 *                     CheckDeps |= checkdep
 *                     errors += errormsgs
 *                     if checkdep:             # <<<<<<<<<<<<<<
 *                         break # The next conflict might be the same pkg
 * 
 */
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_checkdep); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_3) {
 724:                         break # The next conflict might be the same pkg
          /* "/home/david/coding/yum/yum/depsolve.pyx":724
 *                     errors += errormsgs
 *                     if checkdep:
 *                         break # The next conflict might be the same pkg             # <<<<<<<<<<<<<<
 * 
 *                 if CheckDeps:
 */
          goto __pyx_L20_break;
          goto __pyx_L21;
        }
        __pyx_L21:;
      }
      __pyx_L20_break:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 725: 
 726:                 if CheckDeps:
      /* "/home/david/coding/yum/yum/depsolve.pyx":726
 *                         break # The next conflict might be the same pkg
 * 
 *                 if CheckDeps:             # <<<<<<<<<<<<<<
 *                     if self.dsCallback: self.dsCallback.restartLoop()
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
 */
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_CheckDeps); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_3) {
 727:                     if self.dsCallback: self.dsCallback.restartLoop()
        /* "/home/david/coding/yum/yum/depsolve.pyx":727
 * 
 *                 if CheckDeps:
 *                     if self.dsCallback: self.dsCallback.restartLoop()             # <<<<<<<<<<<<<<
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
 *                     continue
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_3) {
          __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__restartLoop); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L23;
        }
        __pyx_L23:;
 728:                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
        /* "/home/david/coding/yum/yum/depsolve.pyx":728
 *                 if CheckDeps:
 *                     if self.dsCallback: self.dsCallback.restartLoop()
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))             # <<<<<<<<<<<<<<
 *                     continue
 * 
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_60));
        PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_s_60));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_60));
        __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __pyx_t_7 = 0;
        __pyx_t_4 = 0;
        __pyx_t_4 = PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 729:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":729
 *                     if self.dsCallback: self.dsCallback.restartLoop()
 *                     self.verbose_logger.log(logginglevels.DEBUG_1, _('Restarting Loop'))
 *                     continue             # <<<<<<<<<<<<<<
 * 
 *             break
 */
        goto __pyx_L8_continue;
        goto __pyx_L22;
      }
      __pyx_L22:;
      goto __pyx_L18;
    }
    __pyx_L18:;
 730: 
 731:             break
    /* "/home/david/coding/yum/yum/depsolve.pyx":731
 *                     continue
 * 
 *             break             # <<<<<<<<<<<<<<
 * 
 *         # FIXME: this doesn't belong here at all...
 */
    goto __pyx_L9_break;
    __pyx_L8_continue:;
  }
  __pyx_L9_break:;
 732: 
 733:         # FIXME: this doesn't belong here at all...
 734:         for txmbr in self.tsInfo.getMembers():
  /* "/home/david/coding/yum/yum/depsolve.pyx":734
 * 
 *         # FIXME: this doesn't belong here at all...
 *         for txmbr in self.tsInfo.getMembers():             # <<<<<<<<<<<<<<
 *             if self.allowedMultipleInstalls(txmbr.po) and \
 *                    txmbr.ts_state == 'u':
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__getMembers); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_2 = 0; __pyx_t_6 = __pyx_t_4; __Pyx_INCREF(__pyx_t_6);
  } else {
    __pyx_t_2 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_6))) {
      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;
    } else {
      __pyx_t_4 = PyIter_Next(__pyx_t_6);
      if (!__pyx_t_4) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_4;
    __pyx_t_4 = 0;
 735:             if self.allowedMultipleInstalls(txmbr.po) and \
    /* "/home/david/coding/yum/yum/depsolve.pyx":735
 *         # FIXME: this doesn't belong here at all...
 *         for txmbr in self.tsInfo.getMembers():
 *             if self.allowedMultipleInstalls(txmbr.po) and \             # <<<<<<<<<<<<<<
 *                    txmbr.ts_state == 'u':
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_25); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_3) {
 736:                    txmbr.ts_state == 'u':
      /* "/home/david/coding/yum/yum/depsolve.pyx":736
 *         for txmbr in self.tsInfo.getMembers():
 *             if self.allowedMultipleInstalls(txmbr.po) and \
 *                    txmbr.ts_state == 'u':             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 *                                         _('%s converted to install'),
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_n_s__u), Py_EQ); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_10 = __pyx_t_9;
    } else {
      __pyx_t_10 = __pyx_t_3;
    }
    if (__pyx_t_10) {
 737:                 self.verbose_logger.log(logginglevels.DEBUG_2,
      /* "/home/david/coding/yum/yum/depsolve.pyx":737
 *             if self.allowedMultipleInstalls(txmbr.po) and \
 *                    txmbr.ts_state == 'u':
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                                         _('%s converted to install'),
 *                                         txmbr.po)
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__log); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 738:                                         _('%s converted to install'),
      /* "/home/david/coding/yum/yum/depsolve.pyx":738
 *                    txmbr.ts_state == 'u':
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 *                                         _('%s converted to install'),             # <<<<<<<<<<<<<<
 *                                         txmbr.po)
 *                 txmbr.ts_state = 'i'
 */
      __pyx_t_7 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_26));
      PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_26));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_26));
      __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 739:                                         txmbr.po)
      /* "/home/david/coding/yum/yum/depsolve.pyx":739
 *                 self.verbose_logger.log(logginglevels.DEBUG_2,
 *                                         _('%s converted to install'),
 *                                         txmbr.po)             # <<<<<<<<<<<<<<
 *                 txmbr.ts_state = 'i'
 *                 txmbr.output_state = TS_INSTALL
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      __pyx_t_4 = 0;
      __pyx_t_8 = 0;
      __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 740:                 txmbr.ts_state = 'i'
      /* "/home/david/coding/yum/yum/depsolve.pyx":740
 *                                         _('%s converted to install'),
 *                                         txmbr.po)
 *                 txmbr.ts_state = 'i'             # <<<<<<<<<<<<<<
 *                 txmbr.output_state = TS_INSTALL
 * 
 */
      if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state, ((PyObject *)__pyx_n_s__i)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 741:                 txmbr.output_state = TS_INSTALL
      /* "/home/david/coding/yum/yum/depsolve.pyx":741
 *                                         txmbr.po)
 *                 txmbr.ts_state = 'i'
 *                 txmbr.output_state = TS_INSTALL             # <<<<<<<<<<<<<<
 * 
 *         if self.dsCallback: self.dsCallback.end()
 */
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyObject_SetAttr(__pyx_v_txmbr, __pyx_n_s__output_state, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L26;
    }
    __pyx_L26:;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 742: 
 743:         if self.dsCallback: self.dsCallback.end()
  /* "/home/david/coding/yum/yum/depsolve.pyx":743
 *                 txmbr.output_state = TS_INSTALL
 * 
 *         if self.dsCallback: self.dsCallback.end()             # <<<<<<<<<<<<<<
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('Dependency Process ending'))
 * 
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_10) {
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__end); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L27;
  }
  __pyx_L27:;
 744:         self.verbose_logger.log(logginglevels.DEBUG_1, _('Dependency Process ending'))
  /* "/home/david/coding/yum/yum/depsolve.pyx":744
 * 
 *         if self.dsCallback: self.dsCallback.end()
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('Dependency Process ending'))             # <<<<<<<<<<<<<<
 * 
 *         self.tsInfo.changed = False
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_61));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_s_61));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_61));
  __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 744; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 745: 
 746:         self.tsInfo.changed = False
  /* "/home/david/coding/yum/yum/depsolve.pyx":746
 *         self.verbose_logger.log(logginglevels.DEBUG_1, _('Dependency Process ending'))
 * 
 *         self.tsInfo.changed = False             # <<<<<<<<<<<<<<
 *         if len(errors) > 0:
 *             errors = unique(errors)
 */
  __pyx_t_8 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__changed, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 747:         if len(errors) > 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":747
 * 
 *         self.tsInfo.changed = False
 *         if len(errors) > 0:             # <<<<<<<<<<<<<<
 *             errors = unique(errors)
 *             for po,wpo,err in self.po_with_problems:
 */
  __pyx_t_2 = PyObject_Length(__pyx_v_errors); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_10 = (__pyx_t_2 > 0);
  if (__pyx_t_10) {
 748:             errors = unique(errors)
    /* "/home/david/coding/yum/yum/depsolve.pyx":748
 *         self.tsInfo.changed = False
 *         if len(errors) > 0:
 *             errors = unique(errors)             # <<<<<<<<<<<<<<
 *             for po,wpo,err in self.po_with_problems:
 *                 self.verbose_logger.info(_("%s from %s has depsolving problems") % (po,po.repoid))
 */
    __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__unique); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v_errors);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_errors);
    __Pyx_GIVEREF(__pyx_v_errors);
    __pyx_t_1 = PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_v_errors);
    __pyx_v_errors = __pyx_t_1;
    __pyx_t_1 = 0;
 749:             for po,wpo,err in self.po_with_problems:
    /* "/home/david/coding/yum/yum/depsolve.pyx":749
 *         if len(errors) > 0:
 *             errors = unique(errors)
 *             for po,wpo,err in self.po_with_problems:             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.info(_("%s from %s has depsolving problems") % (po,po.repoid))
 *                 self.verbose_logger.info("  --> %s" % (err))
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__po_with_problems); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_2 = 0; __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8);
    } else {
      __pyx_t_2 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_8))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_8)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_8))) {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
      } else {
        __pyx_t_1 = PyIter_Next(__pyx_t_8);
        if (!__pyx_t_1) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 3)) {
        PyObject* tuple = __pyx_t_1;
        __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
        __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
        __pyx_t_6 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_po);
        __pyx_v_po = __pyx_t_5;
        __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_v_wpo);
        __pyx_v_wpo = __pyx_t_7;
        __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_v_err);
        __pyx_v_err = __pyx_t_6;
        __pyx_t_6 = 0;
      } else {
        __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_4, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_4, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_4, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        if (__Pyx_EndUnpack(__pyx_t_4, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_v_po);
        __pyx_v_po = __pyx_t_5;
        __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_v_wpo);
        __pyx_v_wpo = __pyx_t_7;
        __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_v_err);
        __pyx_v_err = __pyx_t_6;
        __pyx_t_6 = 0;
      }
 750:                 self.verbose_logger.info(_("%s from %s has depsolving problems") % (po,po.repoid))
      /* "/home/david/coding/yum/yum/depsolve.pyx":750
 *             errors = unique(errors)
 *             for po,wpo,err in self.po_with_problems:
 *                 self.verbose_logger.info(_("%s from %s has depsolving problems") % (po,po.repoid))             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.info("  --> %s" % (err))
 *             return (1, errors)
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__info); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_62));
      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_62));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_62));
      __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__repoid); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Remainder(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 751:                 self.verbose_logger.info("  --> %s" % (err))
      /* "/home/david/coding/yum/yum/depsolve.pyx":751
 *             for po,wpo,err in self.po_with_problems:
 *                 self.verbose_logger.info(_("%s from %s has depsolving problems") % (po,po.repoid))
 *                 self.verbose_logger.info("  --> %s" % (err))             # <<<<<<<<<<<<<<
 *             return (1, errors)
 * 
 */
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_63), __pyx_v_err); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_7));
      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_7));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
      __pyx_t_7 = 0;
      __pyx_t_7 = PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 752:             return (1, errors)
    /* "/home/david/coding/yum/yum/depsolve.pyx":752
 *                 self.verbose_logger.info(_("%s from %s has depsolving problems") % (po,po.repoid))
 *                 self.verbose_logger.info("  --> %s" % (err))
 *             return (1, errors)             # <<<<<<<<<<<<<<
 * 
 *         if len(self.tsInfo) > 0:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    __Pyx_INCREF(__pyx_v_errors);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_errors);
    __Pyx_GIVEREF(__pyx_v_errors);
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
    goto __pyx_L28;
  }
  __pyx_L28:;
 753: 
 754:         if len(self.tsInfo) > 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":754
 *             return (1, errors)
 * 
 *         if len(self.tsInfo) > 0:             # <<<<<<<<<<<<<<
 *             if not len(self.tsInfo):
 *                 return (0, [_('Success - empty transaction')])
 */
  __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_10 = (__pyx_t_2 > 0);
  if (__pyx_t_10) {
 755:             if not len(self.tsInfo):
    /* "/home/david/coding/yum/yum/depsolve.pyx":755
 * 
 *         if len(self.tsInfo) > 0:
 *             if not len(self.tsInfo):             # <<<<<<<<<<<<<<
 *                 return (0, [_('Success - empty transaction')])
 *             return (2, [_('Success - deps resolved')])
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_10 = (!__pyx_t_2);
    if (__pyx_t_10) {
 756:                 return (0, [_('Success - empty transaction')])
      /* "/home/david/coding/yum/yum/depsolve.pyx":756
 *         if len(self.tsInfo) > 0:
 *             if not len(self.tsInfo):
 *                 return (0, [_('Success - empty transaction')])             # <<<<<<<<<<<<<<
 *             return (2, [_('Success - deps resolved')])
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_59));
      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_59));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_59));
      __pyx_t_6 = PyObject_Call(__pyx_t_8, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_7));
      PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_7));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
      __pyx_t_7 = 0;
      __pyx_r = __pyx_t_6;
      __pyx_t_6 = 0;
      goto __pyx_L0;
      goto __pyx_L32;
    }
    __pyx_L32:;
 757:             return (2, [_('Success - deps resolved')])
    /* "/home/david/coding/yum/yum/depsolve.pyx":757
 *             if not len(self.tsInfo):
 *                 return (0, [_('Success - empty transaction')])
 *             return (2, [_('Success - deps resolved')])             # <<<<<<<<<<<<<<
 * 
 *     def _resolveRequires(self, errors):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_64));
    PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_64));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_64));
    __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_7));
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_t_7));
    __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
    goto __pyx_L31;
  }
  __pyx_L31:;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.resolveDeps");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_CheckDeps);
  __Pyx_DECREF(__pyx_v_CheckRemoves);
  __Pyx_DECREF(__pyx_v_CheckInstalls);
  __Pyx_DECREF(__pyx_v_errors);
  __Pyx_DECREF(__pyx_v_checkinstalls);
  __Pyx_DECREF(__pyx_v_checkremoves);
  __Pyx_DECREF(__pyx_v_missing);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_dep);
  __Pyx_DECREF(__pyx_v_checkdep);
  __Pyx_DECREF(__pyx_v_errormsgs);
  __Pyx_DECREF(__pyx_v_conflict);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_wpo);
  __Pyx_DECREF(__pyx_v_err);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 758: 
 759:     def _resolveRequires(self, errors):
/* "/home/david/coding/yum/yum/depsolve.pyx":759
 *             return (2, [_('Success - deps resolved')])
 * 
 *     def _resolveRequires(self, errors):             # <<<<<<<<<<<<<<
 *         any_missing = False
 *         CheckDeps = False
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__resolveRequires(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__resolveRequires = {__Pyx_NAMESTR("_resolveRequires"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__resolveRequires, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__resolveRequires(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_errors = 0;
  PyObject *__pyx_v_any_missing;
  PyObject *__pyx_v_CheckDeps;
  int __pyx_v_CheckInstalls;
  int __pyx_v_CheckRemoves;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_v_thisneeds;
  PyObject *__pyx_v_missing_in_pkg;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_dep;
  PyObject *__pyx_v_checkdep;
  PyObject *__pyx_v_missing;
  PyObject *__pyx_v_errormsgs;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__errors,0};
  __Pyx_RefNannySetupContext("_resolveRequires");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errors);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_resolveRequires", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_resolveRequires") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_errors = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_errors = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_resolveRequires", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._resolveRequires");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_errors);
  __pyx_v_any_missing = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_CheckDeps = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_thisneeds = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missing_in_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_dep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_checkdep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_missing = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_errormsgs = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":759
 *             return (2, [_('Success - deps resolved')])
 * 
 *     def _resolveRequires(self, errors):             # <<<<<<<<<<<<<<
 *         any_missing = False
 *         CheckDeps = False
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__resolveRequires, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___resolveRequires, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 760:         any_missing = False
  /* "/home/david/coding/yum/yum/depsolve.pyx":760
 * 
 *     def _resolveRequires(self, errors):
 *         any_missing = False             # <<<<<<<<<<<<<<
 *         CheckDeps = False
 *         CheckInstalls = False
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_any_missing);
  __pyx_v_any_missing = __pyx_t_1;
  __pyx_t_1 = 0;
 761:         CheckDeps = False
  /* "/home/david/coding/yum/yum/depsolve.pyx":761
 *     def _resolveRequires(self, errors):
 *         any_missing = False
 *         CheckDeps = False             # <<<<<<<<<<<<<<
 *         CheckInstalls = False
 *         CheckRemoves = False
 */
  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_CheckDeps);
  __pyx_v_CheckDeps = __pyx_t_1;
  __pyx_t_1 = 0;
 762:         CheckInstalls = False
  /* "/home/david/coding/yum/yum/depsolve.pyx":762
 *         any_missing = False
 *         CheckDeps = False
 *         CheckInstalls = False             # <<<<<<<<<<<<<<
 *         CheckRemoves = False
 *         # we need to check the opposite of install and remove for regular
 */
  __pyx_v_CheckInstalls = 0;
 763:         CheckRemoves = False
  /* "/home/david/coding/yum/yum/depsolve.pyx":763
 *         CheckDeps = False
 *         CheckInstalls = False
 *         CheckRemoves = False             # <<<<<<<<<<<<<<
 *         # we need to check the opposite of install and remove for regular
 *         # tsInfo members vs removed members
 */
  __pyx_v_CheckRemoves = 0;
 764:         # we need to check the opposite of install and remove for regular
 765:         # tsInfo members vs removed members
 766:         for txmbr in self.tsInfo.getUnresolvedMembers():
  /* "/home/david/coding/yum/yum/depsolve.pyx":766
 *         # we need to check the opposite of install and remove for regular
 *         # tsInfo members vs removed members
 *         for txmbr in self.tsInfo.getUnresolvedMembers():             # <<<<<<<<<<<<<<
 * 
 *             if self.dsCallback and txmbr.ts_state:
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s_65); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = 0; __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
    } else {
      __pyx_t_1 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_1) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_1;
    __pyx_t_1 = 0;
 767: 
 768:             if self.dsCallback and txmbr.ts_state:
    /* "/home/david/coding/yum/yum/depsolve.pyx":768
 *         for txmbr in self.tsInfo.getUnresolvedMembers():
 * 
 *             if self.dsCallback and txmbr.ts_state:             # <<<<<<<<<<<<<<
 *                 self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_4) {
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = __pyx_t_5;
    } else {
      __pyx_t_6 = __pyx_t_4;
    }
    if (__pyx_t_6) {
 769:                 self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
      /* "/home/david/coding/yum/yum/depsolve.pyx":769
 * 
 *             if self.dsCallback and txmbr.ts_state:
 *                 self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)             # <<<<<<<<<<<<<<
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                                     _("Checking deps for %s") %(txmbr,))
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__dsCallback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__pkgAdded); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__ts_state); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_1 = 0;
      __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L8;
    }
    __pyx_L8:;
 770:             self.verbose_logger.log(logginglevels.DEBUG_2,
    /* "/home/david/coding/yum/yum/depsolve.pyx":770
 *             if self.dsCallback and txmbr.ts_state:
 *                 self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 *             self.verbose_logger.log(logginglevels.DEBUG_2,             # <<<<<<<<<<<<<<
 *                                     _("Checking deps for %s") %(txmbr,))
 * 
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__log); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 771:                                     _("Checking deps for %s") %(txmbr,))
    /* "/home/david/coding/yum/yum/depsolve.pyx":771
 *                 self.dsCallback.pkgAdded(txmbr.pkgtup, txmbr.ts_state)
 *             self.verbose_logger.log(logginglevels.DEBUG_2,
 *                                     _("Checking deps for %s") %(txmbr,))             # <<<<<<<<<<<<<<
 * 
 *             # store the primary po we currently are working on
 */
    __pyx_t_8 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_66));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_66));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_66));
    __pyx_t_10 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_txmbr);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_txmbr);
    __Pyx_GIVEREF(__pyx_v_txmbr);
    __pyx_t_8 = PyNumber_Remainder(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_8);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 772: 
 773:             # store the primary po we currently are working on
 774:             # so we can store it in self.po_with_problems.
 775:             # it is useful when an update is breaking an require of an installed package
 776:             # then we want to know who is causing the problem, not just who is having the problem.
 777:             if not txmbr.updates and txmbr.relatedto:
    /* "/home/david/coding/yum/yum/depsolve.pyx":777
 *             # it is useful when an update is breaking an require of an installed package
 *             # then we want to know who is causing the problem, not just who is having the problem.
 *             if not txmbr.updates and txmbr.relatedto:             # <<<<<<<<<<<<<<
 *                 self._working_po = txmbr.relatedto[0][0]
 *             else:
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__updates); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_4 = (!__pyx_t_6);
    if (__pyx_t_4) {
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__relatedto); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_5 = __pyx_t_6;
    } else {
      __pyx_t_5 = __pyx_t_4;
    }
    if (__pyx_t_5) {
 778:                 self._working_po = txmbr.relatedto[0][0]
      /* "/home/david/coding/yum/yum/depsolve.pyx":778
 *             # then we want to know who is causing the problem, not just who is having the problem.
 *             if not txmbr.updates and txmbr.relatedto:
 *                 self._working_po = txmbr.relatedto[0][0]             # <<<<<<<<<<<<<<
 *             else:
 *                 self._working_po = txmbr.po
 */
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__relatedto); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_8, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___working_po, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L9;
    }
    /*else*/ {
 779:             else:
 780:                 self._working_po = txmbr.po
      /* "/home/david/coding/yum/yum/depsolve.pyx":780
 *                 self._working_po = txmbr.relatedto[0][0]
 *             else:
 *                 self._working_po = txmbr.po             # <<<<<<<<<<<<<<
 * 
 *             if (txmbr.output_state in TS_INSTALL_STATES) == (txmbr.po.state != None):
 */
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s___working_po, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __pyx_L9:;
 781: 
 782:             if (txmbr.output_state in TS_INSTALL_STATES) == (txmbr.po.state != None):
    /* "/home/david/coding/yum/yum/depsolve.pyx":782
 *                 self._working_po = txmbr.po
 * 
 *             if (txmbr.output_state in TS_INSTALL_STATES) == (txmbr.po.state != None):             # <<<<<<<<<<<<<<
 *                 thisneeds = self._checkInstall(txmbr)
 *                 CheckInstalls = True
 */
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__output_state); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL_STATES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = ((PySequence_Contains(__pyx_t_1, __pyx_t_8))); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__state); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_9, Py_None, Py_NE); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_EQ); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (__pyx_t_5) {
 783:                 thisneeds = self._checkInstall(txmbr)
      /* "/home/david/coding/yum/yum/depsolve.pyx":783
 * 
 *             if (txmbr.output_state in TS_INSTALL_STATES) == (txmbr.po.state != None):
 *                 thisneeds = self._checkInstall(txmbr)             # <<<<<<<<<<<<<<
 *                 CheckInstalls = True
 *             else:
 */
      __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___checkInstall); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_txmbr);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_txmbr);
      __Pyx_GIVEREF(__pyx_v_txmbr);
      __pyx_t_1 = PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_v_thisneeds);
      __pyx_v_thisneeds = __pyx_t_1;
      __pyx_t_1 = 0;
 784:                 CheckInstalls = True
      /* "/home/david/coding/yum/yum/depsolve.pyx":784
 *             if (txmbr.output_state in TS_INSTALL_STATES) == (txmbr.po.state != None):
 *                 thisneeds = self._checkInstall(txmbr)
 *                 CheckInstalls = True             # <<<<<<<<<<<<<<
 *             else:
 *                 thisneeds = self._checkRemove(txmbr)
 */
      __pyx_v_CheckInstalls = 1;
      goto __pyx_L10;
    }
    /*else*/ {
 785:             else:
 786:                 thisneeds = self._checkRemove(txmbr)
      /* "/home/david/coding/yum/yum/depsolve.pyx":786
 *                 CheckInstalls = True
 *             else:
 *                 thisneeds = self._checkRemove(txmbr)             # <<<<<<<<<<<<<<
 *                 CheckRemoves = True
 * 
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___checkRemove); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_txmbr);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_txmbr);
      __Pyx_GIVEREF(__pyx_v_txmbr);
      __pyx_t_9 = PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_v_thisneeds);
      __pyx_v_thisneeds = __pyx_t_9;
      __pyx_t_9 = 0;
 787:                 CheckRemoves = True
      /* "/home/david/coding/yum/yum/depsolve.pyx":787
 *             else:
 *                 thisneeds = self._checkRemove(txmbr)
 *                 CheckRemoves = True             # <<<<<<<<<<<<<<
 * 
 *             missing_in_pkg = False
 */
      __pyx_v_CheckRemoves = 1;
    }
    __pyx_L10:;
 788: 
 789:             missing_in_pkg = False
    /* "/home/david/coding/yum/yum/depsolve.pyx":789
 *                 CheckRemoves = True
 * 
 *             missing_in_pkg = False             # <<<<<<<<<<<<<<
 *             for po, dep in thisneeds:
 *                 (checkdep, missing, errormsgs) = self._processReq(po, dep)
 */
    __pyx_t_9 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_v_missing_in_pkg);
    __pyx_v_missing_in_pkg = __pyx_t_9;
    __pyx_t_9 = 0;
 790:             for po, dep in thisneeds:
    /* "/home/david/coding/yum/yum/depsolve.pyx":790
 * 
 *             missing_in_pkg = False
 *             for po, dep in thisneeds:             # <<<<<<<<<<<<<<
 *                 (checkdep, missing, errormsgs) = self._processReq(po, dep)
 *                 CheckDeps |= checkdep
 */
    if (PyList_CheckExact(__pyx_v_thisneeds) || PyTuple_CheckExact(__pyx_v_thisneeds)) {
      __pyx_t_11 = 0; __pyx_t_9 = __pyx_v_thisneeds; __Pyx_INCREF(__pyx_t_9);
    } else {
      __pyx_t_11 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_thisneeds); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
    }
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
        __pyx_t_8 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_9))) {
        if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_8); __pyx_t_11++;
      } else {
        __pyx_t_8 = PyIter_Next(__pyx_t_9);
        if (!__pyx_t_8) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      if (PyTuple_CheckExact(__pyx_t_8) && likely(PyTuple_GET_SIZE(__pyx_t_8) == 2)) {
        PyObject* tuple = __pyx_t_8;
        __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
        __pyx_t_7 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_v_po);
        __pyx_v_po = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_dep);
        __pyx_v_dep = __pyx_t_7;
        __pyx_t_7 = 0;
      } else {
        __pyx_t_10 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_10, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_10, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        if (__Pyx_EndUnpack(__pyx_t_10, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 790; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_v_po);
        __pyx_v_po = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_dep);
        __pyx_v_dep = __pyx_t_7;
        __pyx_t_7 = 0;
      }
 791:                 (checkdep, missing, errormsgs) = self._processReq(po, dep)
      /* "/home/david/coding/yum/yum/depsolve.pyx":791
 *             missing_in_pkg = False
 *             for po, dep in thisneeds:
 *                 (checkdep, missing, errormsgs) = self._processReq(po, dep)             # <<<<<<<<<<<<<<
 *                 CheckDeps |= checkdep
 *                 errors += errormsgs
 */
      __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___processReq); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __Pyx_INCREF(__pyx_v_dep);
      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_dep);
      __Pyx_GIVEREF(__pyx_v_dep);
      __pyx_t_1 = PyObject_Call(__pyx_t_8, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 3)) {
        PyObject* tuple = __pyx_t_1;
        __pyx_t_7 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_7);
        __pyx_t_8 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_8);
        __pyx_t_10 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_checkdep);
        __pyx_v_checkdep = __pyx_t_7;
        __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_v_missing);
        __pyx_v_missing = __pyx_t_8;
        __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_v_errormsgs);
        __pyx_v_errormsgs = __pyx_t_10;
        __pyx_t_10 = 0;
      } else {
        __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_12, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_UnpackItem(__pyx_t_12, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_10 = __Pyx_UnpackItem(__pyx_t_12, 2); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        if (__Pyx_EndUnpack(__pyx_t_12, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_v_checkdep);
        __pyx_v_checkdep = __pyx_t_7;
        __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_v_missing);
        __pyx_v_missing = __pyx_t_8;
        __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_v_errormsgs);
        __pyx_v_errormsgs = __pyx_t_10;
        __pyx_t_10 = 0;
      }
 792:                 CheckDeps |= checkdep
      /* "/home/david/coding/yum/yum/depsolve.pyx":792
 *             for po, dep in thisneeds:
 *                 (checkdep, missing, errormsgs) = self._processReq(po, dep)
 *                 CheckDeps |= checkdep             # <<<<<<<<<<<<<<
 *                 errors += errormsgs
 *                 missing_in_pkg |= missing
 */
      __pyx_t_1 = PyNumber_InPlaceOr(__pyx_v_CheckDeps, __pyx_v_checkdep); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_CheckDeps);
      __pyx_v_CheckDeps = __pyx_t_1;
      __pyx_t_1 = 0;
 793:                 errors += errormsgs
      /* "/home/david/coding/yum/yum/depsolve.pyx":793
 *                 (checkdep, missing, errormsgs) = self._processReq(po, dep)
 *                 CheckDeps |= checkdep
 *                 errors += errormsgs             # <<<<<<<<<<<<<<
 *                 missing_in_pkg |= missing
 * 
 */
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_errors, __pyx_v_errormsgs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_errors);
      __pyx_v_errors = __pyx_t_1;
      __pyx_t_1 = 0;
 794:                 missing_in_pkg |= missing
      /* "/home/david/coding/yum/yum/depsolve.pyx":794
 *                 CheckDeps |= checkdep
 *                 errors += errormsgs
 *                 missing_in_pkg |= missing             # <<<<<<<<<<<<<<
 * 
 *             if not missing_in_pkg:
 */
      __pyx_t_1 = PyNumber_InPlaceOr(__pyx_v_missing_in_pkg, __pyx_v_missing); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_missing_in_pkg);
      __pyx_v_missing_in_pkg = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 795: 
 796:             if not missing_in_pkg:
    /* "/home/david/coding/yum/yum/depsolve.pyx":796
 *                 missing_in_pkg |= missing
 * 
 *             if not missing_in_pkg:             # <<<<<<<<<<<<<<
 *                 self.tsInfo.markAsResolved(txmbr)
 * 
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_missing_in_pkg); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = (!__pyx_t_5);
    if (__pyx_t_4) {
 797:                 self.tsInfo.markAsResolved(txmbr)
      /* "/home/david/coding/yum/yum/depsolve.pyx":797
 * 
 *             if not missing_in_pkg:
 *                 self.tsInfo.markAsResolved(txmbr)             # <<<<<<<<<<<<<<
 * 
 *             any_missing |= missing_in_pkg
 */
      __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__markAsResolved); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_txmbr);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_txmbr);
      __Pyx_GIVEREF(__pyx_v_txmbr);
      __pyx_t_10 = PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      goto __pyx_L13;
    }
    __pyx_L13:;
 798: 
 799:             any_missing |= missing_in_pkg
    /* "/home/david/coding/yum/yum/depsolve.pyx":799
 *                 self.tsInfo.markAsResolved(txmbr)
 * 
 *             any_missing |= missing_in_pkg             # <<<<<<<<<<<<<<
 * 
 *         return CheckDeps, CheckInstalls, CheckRemoves, any_missing
 */
    __pyx_t_10 = PyNumber_InPlaceOr(__pyx_v_any_missing, __pyx_v_missing_in_pkg); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_v_any_missing);
    __pyx_v_any_missing = __pyx_t_10;
    __pyx_t_10 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 800: 
 801:         return CheckDeps, CheckInstalls, CheckRemoves, any_missing
  /* "/home/david/coding/yum/yum/depsolve.pyx":801
 *             any_missing |= missing_in_pkg
 * 
 *         return CheckDeps, CheckInstalls, CheckRemoves, any_missing             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_CheckInstalls); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_v_CheckRemoves); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = PyTuple_New(4); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(__pyx_v_CheckDeps);
  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_CheckDeps);
  __Pyx_GIVEREF(__pyx_v_CheckDeps);
  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_10);
  __Pyx_INCREF(__pyx_v_any_missing);
  PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_v_any_missing);
  __Pyx_GIVEREF(__pyx_v_any_missing);
  __pyx_t_3 = 0;
  __pyx_t_10 = 0;
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._resolveRequires");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_any_missing);
  __Pyx_DECREF(__pyx_v_CheckDeps);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_thisneeds);
  __Pyx_DECREF(__pyx_v_missing_in_pkg);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_dep);
  __Pyx_DECREF(__pyx_v_checkdep);
  __Pyx_DECREF(__pyx_v_missing);
  __Pyx_DECREF(__pyx_v_errormsgs);
  __Pyx_DECREF(__pyx_v_errors);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 802: 
 803:     @staticmethod
 804:     def _sort_reqs(pkgtup1, pkgtup2):
/* "/home/david/coding/yum/yum/depsolve.pyx":804
 * 
 *     @staticmethod
 *     def _sort_reqs(pkgtup1, pkgtup2):             # <<<<<<<<<<<<<<
 *         """ Sort the requires for a package from most "narrow" to least,
 *             this tries to ensure that if we have two reqs like
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__sort_reqs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__sort_reqs[] = " Sort the requires for a package from most \"narrow\" to least,\n            this tries to ensure that if we have two reqs like\n            \"libfoo = 1.2.3-4\" and \"foo-api\" (which is also provided by\n            libxyz-foo) that we'll get just libfoo.\n            There are other similar cases this \"handles\".";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__sort_reqs = {__Pyx_NAMESTR("_sort_reqs"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__sort_reqs, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__sort_reqs)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__sort_reqs(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__sort_reqs *__pyx_cur_scope;
  PyObject *__pyx_v_pkgtup1 = 0;
  PyObject *__pyx_v_pkgtup2 = 0;
  PyObject *__pyx_v_mapper;
  PyObject *__pyx_v_ret;
  PyObject *__pyx_v__req_name2val;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__pkgtup1,&__pyx_n_s__pkgtup2,0};
  __Pyx_RefNannySetupContext("_sort_reqs");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__sort_reqs *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct__sort_reqs->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct__sort_reqs, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pkgtup1);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pkgtup2);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_sort_reqs", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_sort_reqs") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_pkgtup1 = values[0];
    __pyx_v_pkgtup2 = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_pkgtup1 = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_pkgtup2 = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_sort_reqs", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._sort_reqs");
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_mapper = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_ret = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v__req_name2val = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":804
 * 
 *     @staticmethod
 *     def _sort_reqs(pkgtup1, pkgtup2):             # <<<<<<<<<<<<<<
 *         """ Sort the requires for a package from most "narrow" to least,
 *             this tries to ensure that if we have two reqs like
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__sort_reqs, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___sort_reqs, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "/home/david/coding/yum/yum/depsolve.pyx":803
 *         return CheckDeps, CheckInstalls, CheckRemoves, any_missing
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def _sort_reqs(pkgtup1, pkgtup2):
 *         """ Sort the requires for a package from most "narrow" to least,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_t_5, __pyx_n_s___sort_reqs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_builtin_staticmethod, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___sort_reqs, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

/* "/home/david/coding/yum/yum/depsolve.pyx":804
 * 
 *     @staticmethod
 *     def _sort_reqs(pkgtup1, pkgtup2):             # <<<<<<<<<<<<<<
 *         """ Sort the requires for a package from most "narrow" to least,
 *             this tries to ensure that if we have two reqs like
 */

struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__sort_reqs {
  PyObject_HEAD
  PyObject *__pyx_v__req_name2val;
  PyObject *__pyx_v_mapper;
  PyObject *__pyx_v_pkgtup1;
  PyObject *__pyx_v_pkgtup2;
  PyObject *__pyx_v_ret;
};
 805:         """ Sort the requires for a package from most "narrow" to least,
 806:             this tries to ensure that if we have two reqs like
 807:             "libfoo = 1.2.3-4" and "foo-api" (which is also provided by
 808:             libxyz-foo) that we'll get just libfoo.
 809:             There are other similar cases this "handles"."""
 810: 
 811:         mapper = {'EQ' : 1, 'LT' : 2, 'LE' : 3, 'GT' : 4, 'GE' : 5,
  /* "/home/david/coding/yum/yum/depsolve.pyx":811
 *             There are other similar cases this "handles"."""
 * 
 *         mapper = {'EQ' : 1, 'LT' : 2, 'LE' : 3, 'GT' : 4, 'GE' : 5,             # <<<<<<<<<<<<<<
 *                   None : 99}
 *         ret = mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__EQ), __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__LT), __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__LE), __pyx_int_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__GT), __pyx_int_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__GE), __pyx_int_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 812:                   None : 99}
  /* "/home/david/coding/yum/yum/depsolve.pyx":812
 * 
 *         mapper = {'EQ' : 1, 'LT' : 2, 'LE' : 3, 'GT' : 4, 'GE' : 5,
 *                   None : 99}             # <<<<<<<<<<<<<<
 *         ret = mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
 *         if ret:
 */
  if (PyDict_SetItem(__pyx_t_1, Py_None, __pyx_int_99) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_v_mapper);
  __pyx_v_mapper = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
 813:         ret = mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
  /* "/home/david/coding/yum/yum/depsolve.pyx":813
 *         mapper = {'EQ' : 1, 'LT' : 2, 'LE' : 3, 'GT' : 4, 'GE' : 5,
 *                   None : 99}
 *         ret = mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)             # <<<<<<<<<<<<<<
 *         if ret:
 *             return ret
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_mapper, __pyx_n_s__get); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_pkgtup1, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_int_10);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_10);
  __Pyx_GIVEREF(__pyx_int_10);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_mapper, __pyx_n_s__get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_pkgtup2, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_int_10);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_10);
  __Pyx_GIVEREF(__pyx_int_10);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_ret);
  __pyx_v_ret = __pyx_t_4;
  __pyx_t_4 = 0;
 814:         if ret:
  /* "/home/david/coding/yum/yum/depsolve.pyx":814
 *                   None : 99}
 *         ret = mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
 *         if ret:             # <<<<<<<<<<<<<<
 *             return ret
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ret); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_5) {
 815:             return ret
    /* "/home/david/coding/yum/yum/depsolve.pyx":815
 *         ret = mapper.get(pkgtup1[1], 10) - mapper.get(pkgtup2[1], 10)
 *         if ret:
 *             return ret             # <<<<<<<<<<<<<<
 * 
 *         # This is pretty magic, basically we want an explicit:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_ret);
    __pyx_r = __pyx_v_ret;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 816: 
 817:         # This is pretty magic, basically we want an explicit:
 818:         #
 819:         #  Requires: foo
 820:         #
 821:         # ...to happen before the implicit:
 822:         #
 823:         #  Requires: libfoo.so.0()
 824:         #
 825:         # ...because sometimes the libfoo.so.0() is provided by multiple
 826:         # packages. Do we need more magic for other implicit deps. here?
 827:         def _req_name2val(name):
/* "/home/david/coding/yum/yum/depsolve.pyx":827
 *         # ...because sometimes the libfoo.so.0() is provided by multiple
 *         # packages. Do we need more magic for other implicit deps. here?
 *         def _req_name2val(name):             # <<<<<<<<<<<<<<
 *             if (name.startswith("lib") and
 *                 (name.endswith("()") or name.endswith("()(64bit)"))):
 */

static PyObject *__pyx_pf_3yum_8depsolve_10_sort_reqs__req_name2val(PyObject *__pyx_self, PyObject *__pyx_v_name); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_10_sort_reqs__req_name2val = {__Pyx_NAMESTR("_req_name2val"), (PyCFunction)__pyx_pf_3yum_8depsolve_10_sort_reqs__req_name2val, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_10_sort_reqs__req_name2val(PyObject *__pyx_self, PyObject *__pyx_v_name) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__sort_reqs *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_req_name2val");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__sort_reqs *)__pyx_self;
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":827
 *         # ...because sometimes the libfoo.so.0() is provided by multiple
 *         # packages. Do we need more magic for other implicit deps. here?
 *         def _req_name2val(name):             # <<<<<<<<<<<<<<
 *             if (name.startswith("lib") and
 *                 (name.endswith("()") or name.endswith("()(64bit)"))):
 */
  __pyx_t_4 = __pyx_binding_PyCFunctionType_New(&__pyx_mdef_3yum_8depsolve_10_sort_reqs__req_name2val, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_v__req_name2val);
  __pyx_v__req_name2val = __pyx_t_4;
  __pyx_t_4 = 0;
 828:             if (name.startswith("lib") and
  /* "/home/david/coding/yum/yum/depsolve.pyx":828
 *         # packages. Do we need more magic for other implicit deps. here?
 *         def _req_name2val(name):
 *             if (name.startswith("lib") and             # <<<<<<<<<<<<<<
 *                 (name.endswith("()") or name.endswith("()(64bit)"))):
 *                 return 99 # Processes these last
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__startswith); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__lib));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__lib));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__lib));
  __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
 829:                 (name.endswith("()") or name.endswith("()(64bit)"))):
    /* "/home/david/coding/yum/yum/depsolve.pyx":829
 *         def _req_name2val(name):
 *             if (name.startswith("lib") and
 *                 (name.endswith("()") or name.endswith("()(64bit)"))):             # <<<<<<<<<<<<<<
 *                 return 99 # Processes these last
 *             return 0
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__endswith); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_67));
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_67));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_67));
    __pyx_t_1 = PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_5) {
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__endswith); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_68));
      PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_68));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_68));
      __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_7 = __pyx_t_6;
    } else {
      __pyx_t_7 = __pyx_t_5;
    }
    __pyx_t_5 = __pyx_t_7;
  } else {
    __pyx_t_5 = __pyx_t_4;
  }
  if (__pyx_t_5) {
 830:                 return 99 # Processes these last
    /* "/home/david/coding/yum/yum/depsolve.pyx":830
 *             if (name.startswith("lib") and
 *                 (name.endswith("()") or name.endswith("()(64bit)"))):
 *                 return 99 # Processes these last             # <<<<<<<<<<<<<<
 *             return 0
 *         return _req_name2val(pkgtup1[0]) - _req_name2val(pkgtup2[0])
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_int_99);
    __pyx_r = __pyx_int_99;
    goto __pyx_L0;
    goto __pyx_L5;
  }
  __pyx_L5:;
 831:             return 0
  /* "/home/david/coding/yum/yum/depsolve.pyx":831
 *                 (name.endswith("()") or name.endswith("()(64bit)"))):
 *                 return 99 # Processes these last
 *             return 0             # <<<<<<<<<<<<<<
 *         return _req_name2val(pkgtup1[0]) - _req_name2val(pkgtup2[0])
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_int_0);
  __pyx_r = __pyx_int_0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve._sort_reqs._req_name2val");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 832:         return _req_name2val(pkgtup1[0]) - _req_name2val(pkgtup2[0])
  /* "/home/david/coding/yum/yum/depsolve.pyx":832
 *                 return 99 # Processes these last
 *             return 0
 *         return _req_name2val(pkgtup1[0]) - _req_name2val(pkgtup2[0])             # <<<<<<<<<<<<<<
 * 
 *     def _checkInstall(self, txmbr):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_pkgtup1, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_v__req_name2val, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_pkgtup2, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_v__req_name2val, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._sort_reqs");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_mapper);
  __Pyx_DECREF(__pyx_v_ret);
  __Pyx_DECREF(__pyx_v__req_name2val);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 833: 
 834:     def _checkInstall(self, txmbr):
/* "/home/david/coding/yum/yum/depsolve.pyx":834
 *         return _req_name2val(pkgtup1[0]) - _req_name2val(pkgtup2[0])
 * 
 *     def _checkInstall(self, txmbr):             # <<<<<<<<<<<<<<
 *         txmbr_reqs = txmbr.po.returnPrco('requires')
 *         txmbr_provs = set(txmbr.po.returnPrco('provides'))
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkInstall(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__checkInstall = {__Pyx_NAMESTR("_checkInstall"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__checkInstall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkInstall(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_txmbr = 0;
  PyObject *__pyx_v_txmbr_reqs;
  PyObject *__pyx_v_txmbr_provs;
  PyObject *__pyx_v_oldreqs;
  PyObject *__pyx_v_oldpo;
  PyObject *__pyx_v_ret;
  PyObject *__pyx_v_req;
  PyObject *__pyx_v_provs;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_member;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__txmbr,0};
  __Pyx_RefNannySetupContext("_checkInstall");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__txmbr);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_checkInstall", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_checkInstall") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_txmbr = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_txmbr = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_checkInstall", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._checkInstall");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_txmbr_reqs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr_provs = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_oldreqs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_oldpo = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_ret = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_req = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_provs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_member = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":834
 *         return _req_name2val(pkgtup1[0]) - _req_name2val(pkgtup2[0])
 * 
 *     def _checkInstall(self, txmbr):             # <<<<<<<<<<<<<<
 *         txmbr_reqs = txmbr.po.returnPrco('requires')
 *         txmbr_provs = set(txmbr.po.returnPrco('provides'))
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__checkInstall, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___checkInstall, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 835:         txmbr_reqs = txmbr.po.returnPrco('requires')
  /* "/home/david/coding/yum/yum/depsolve.pyx":835
 * 
 *     def _checkInstall(self, txmbr):
 *         txmbr_reqs = txmbr.po.returnPrco('requires')             # <<<<<<<<<<<<<<
 *         txmbr_provs = set(txmbr.po.returnPrco('provides'))
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__requires));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__requires));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__requires));
  __pyx_t_3 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_v_txmbr_reqs);
  __pyx_v_txmbr_reqs = __pyx_t_3;
  __pyx_t_3 = 0;
 836:         txmbr_provs = set(txmbr.po.returnPrco('provides'))
  /* "/home/david/coding/yum/yum/depsolve.pyx":836
 *     def _checkInstall(self, txmbr):
 *         txmbr_reqs = txmbr.po.returnPrco('requires')
 *         txmbr_provs = set(txmbr.po.returnPrco('provides'))             # <<<<<<<<<<<<<<
 * 
 *         # if this is an update, we should check what the old
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__provides));
  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_s__provides));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__provides));
  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)&PySet_Type)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_v_txmbr_provs));
  __pyx_v_txmbr_provs = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
 837: 
 838:         # if this is an update, we should check what the old
 839:         # requires were to make things faster
 840:         oldreqs = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":840
 *         # if this is an update, we should check what the old
 *         # requires were to make things faster
 *         oldreqs = []             # <<<<<<<<<<<<<<
 *         for oldpo in txmbr.updates:
 *             oldreqs.extend(oldpo.returnPrco('requires'))
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_DECREF(__pyx_v_oldreqs);
  __pyx_v_oldreqs = ((PyObject *)__pyx_t_2);
  __pyx_t_2 = 0;
 841:         for oldpo in txmbr.updates:
  /* "/home/david/coding/yum/yum/depsolve.pyx":841
 *         # requires were to make things faster
 *         oldreqs = []
 *         for oldpo in txmbr.updates:             # <<<<<<<<<<<<<<
 *             oldreqs.extend(oldpo.returnPrco('requires'))
 *         oldreqs = set(oldreqs)
 */
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__updates); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_4 = 0; __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++;
    } else {
      __pyx_t_2 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_2) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF(__pyx_v_oldpo);
    __pyx_v_oldpo = __pyx_t_2;
    __pyx_t_2 = 0;
 842:             oldreqs.extend(oldpo.returnPrco('requires'))
    /* "/home/david/coding/yum/yum/depsolve.pyx":842
 *         oldreqs = []
 *         for oldpo in txmbr.updates:
 *             oldreqs.extend(oldpo.returnPrco('requires'))             # <<<<<<<<<<<<<<
 *         oldreqs = set(oldreqs)
 * 
 */
    __pyx_t_2 = PyObject_GetAttr(__pyx_v_oldreqs, __pyx_n_s__extend); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_oldpo, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)__pyx_n_s__requires));
    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_n_s__requires));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__requires));
    __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 843:         oldreqs = set(oldreqs)
  /* "/home/david/coding/yum/yum/depsolve.pyx":843
 *         for oldpo in txmbr.updates:
 *             oldreqs.extend(oldpo.returnPrco('requires'))
 *         oldreqs = set(oldreqs)             # <<<<<<<<<<<<<<
 * 
 *         ret = []
 */
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_oldreqs);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_oldreqs);
  __Pyx_GIVEREF(__pyx_v_oldreqs);
  __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)&PySet_Type)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_oldreqs);
  __pyx_v_oldreqs = __pyx_t_6;
  __pyx_t_6 = 0;
 844: 
 845:         ret = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":845
 *         oldreqs = set(oldreqs)
 * 
 *         ret = []             # <<<<<<<<<<<<<<
 *         for req in sorted(txmbr_reqs, cmp=self._sort_reqs):
 *             if req[0].startswith('rpmlib('):
 */
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
  __Pyx_DECREF(((PyObject *)__pyx_v_ret));
  __pyx_v_ret = __pyx_t_6;
  __pyx_t_6 = 0;
 846:         for req in sorted(txmbr_reqs, cmp=self._sort_reqs):
  /* "/home/david/coding/yum/yum/depsolve.pyx":846
 * 
 *         ret = []
 *         for req in sorted(txmbr_reqs, cmp=self._sort_reqs):             # <<<<<<<<<<<<<<
 *             if req[0].startswith('rpmlib('):
 *                 continue
 */
  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_txmbr_reqs);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_txmbr_reqs);
  __Pyx_GIVEREF(__pyx_v_txmbr_reqs);
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___sort_reqs); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__cmp), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_builtin_sorted, __pyx_t_6, ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_4 = 0; __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++;
    } else {
      __pyx_t_5 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_5) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF(__pyx_v_req);
    __pyx_v_req = __pyx_t_5;
    __pyx_t_5 = 0;
 847:             if req[0].startswith('rpmlib('):
    /* "/home/david/coding/yum/yum/depsolve.pyx":847
 *         ret = []
 *         for req in sorted(txmbr_reqs, cmp=self._sort_reqs):
 *             if req[0].startswith('rpmlib('):             # <<<<<<<<<<<<<<
 *                 continue
 *             if req in txmbr_provs:
 */
    __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_req, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__startswith); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_69));
    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_s_69));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_69));
    __pyx_t_2 = PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_7) {
 848:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":848
 *         for req in sorted(txmbr_reqs, cmp=self._sort_reqs):
 *             if req[0].startswith('rpmlib('):
 *                 continue             # <<<<<<<<<<<<<<
 *             if req in txmbr_provs:
 *                 continue
 */
      goto __pyx_L8_continue;
      goto __pyx_L10;
    }
    __pyx_L10:;
 849:             if req in txmbr_provs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":849
 *             if req[0].startswith('rpmlib('):
 *                 continue
 *             if req in txmbr_provs:             # <<<<<<<<<<<<<<
 *                 continue
 *             if req in oldreqs and self.rpmdb.getProvides(*req):
 */
    __pyx_t_7 = ((PySequence_Contains(((PyObject *)__pyx_v_txmbr_provs), __pyx_v_req))); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_7) {
 850:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":850
 *                 continue
 *             if req in txmbr_provs:
 *                 continue             # <<<<<<<<<<<<<<
 *             if req in oldreqs and self.rpmdb.getProvides(*req):
 *                 continue
 */
      goto __pyx_L8_continue;
      goto __pyx_L11;
    }
    __pyx_L11:;
 851:             if req in oldreqs and self.rpmdb.getProvides(*req):
    /* "/home/david/coding/yum/yum/depsolve.pyx":851
 *             if req in txmbr_provs:
 *                 continue
 *             if req in oldreqs and self.rpmdb.getProvides(*req):             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
    __pyx_t_7 = ((PySequence_Contains(__pyx_v_oldreqs, __pyx_v_req))); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_7) {
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__getProvides); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PySequence_Tuple(__pyx_v_req); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
      __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = __pyx_t_8;
    } else {
      __pyx_t_9 = __pyx_t_7;
    }
    if (__pyx_t_9) {
 852:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":852
 *                 continue
 *             if req in oldreqs and self.rpmdb.getProvides(*req):
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
 */
      goto __pyx_L8_continue;
      goto __pyx_L12;
    }
    __pyx_L12:;
 853: 
 854:             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
    /* "/home/david/coding/yum/yum/depsolve.pyx":854
 *                 continue
 * 
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)             # <<<<<<<<<<<<<<
 *             provs = self.tsInfo.getProvides(*req)
 *             if not provs:
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_70));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_70));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_70));
    __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v_req);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_req);
    __Pyx_GIVEREF(__pyx_v_req);
    __Pyx_INCREF(__pyx_v_txmbr);
    PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_txmbr);
    __Pyx_GIVEREF(__pyx_v_txmbr);
    __pyx_t_5 = 0;
    __pyx_t_10 = 0;
    __pyx_t_10 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 855:             provs = self.tsInfo.getProvides(*req)
    /* "/home/david/coding/yum/yum/depsolve.pyx":855
 * 
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
 *             provs = self.tsInfo.getProvides(*req)             # <<<<<<<<<<<<<<
 *             if not provs:
 *                 ret.append( (txmbr.po, self._prco_req2req(req)) )
 */
    __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__getProvides); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PySequence_Tuple(__pyx_v_req); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_10));
    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_10), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_v_provs);
    __pyx_v_provs = __pyx_t_2;
    __pyx_t_2 = 0;
 856:             if not provs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":856
 *             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
 *             provs = self.tsInfo.getProvides(*req)
 *             if not provs:             # <<<<<<<<<<<<<<
 *                 ret.append( (txmbr.po, self._prco_req2req(req)) )
 *                 continue
 */
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_provs); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_7 = (!__pyx_t_9);
    if (__pyx_t_7) {
 857:                 ret.append( (txmbr.po, self._prco_req2req(req)) )
      /* "/home/david/coding/yum/yum/depsolve.pyx":857
 *             provs = self.tsInfo.getProvides(*req)
 *             if not provs:
 *                 ret.append( (txmbr.po, self._prco_req2req(req)) )             # <<<<<<<<<<<<<<
 *                 continue
 * 
 */
      if (unlikely(__pyx_v_ret == Py_None)) {
        PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
      }
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req2req); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_req);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_req);
      __Pyx_GIVEREF(__pyx_v_req);
      __pyx_t_5 = PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_2 = 0;
      __pyx_t_5 = 0;
      __pyx_t_11 = PyList_Append(((PyObject *)__pyx_v_ret), __pyx_t_1); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 858:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":858
 *             if not provs:
 *                 ret.append( (txmbr.po, self._prco_req2req(req)) )
 *                 continue             # <<<<<<<<<<<<<<
 * 
 *             #Add relationship
 */
      goto __pyx_L8_continue;
      goto __pyx_L13;
    }
    __pyx_L13:;
 859: 
 860:             #Add relationship
 861:             for po in provs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":861
 * 
 *             #Add relationship
 *             for po in provs:             # <<<<<<<<<<<<<<
 *                 if txmbr.name == po.name:
 *                     continue
 */
    if (PyList_CheckExact(__pyx_v_provs) || PyTuple_CheckExact(__pyx_v_provs)) {
      __pyx_t_12 = 0; __pyx_t_1 = __pyx_v_provs; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_12 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_provs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
    }
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++;
      } else {
        __pyx_t_5 = PyIter_Next(__pyx_t_1);
        if (!__pyx_t_5) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_DECREF(__pyx_v_po);
      __pyx_v_po = __pyx_t_5;
      __pyx_t_5 = 0;
 862:                 if txmbr.name == po.name:
      /* "/home/david/coding/yum/yum/depsolve.pyx":862
 *             #Add relationship
 *             for po in provs:
 *                 if txmbr.name == po.name:             # <<<<<<<<<<<<<<
 *                     continue
 *                 for member in self.tsInfo.getMembersWithState(
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_EQ); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_7) {
 863:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":863
 *             for po in provs:
 *                 if txmbr.name == po.name:
 *                     continue             # <<<<<<<<<<<<<<
 *                 for member in self.tsInfo.getMembersWithState(
 *                     pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES):
 */
        goto __pyx_L14_continue;
        goto __pyx_L16;
      }
      __pyx_L16:;
 864:                 for member in self.tsInfo.getMembersWithState(
      /* "/home/david/coding/yum/yum/depsolve.pyx":864
 *                 if txmbr.name == po.name:
 *                     continue
 *                 for member in self.tsInfo.getMembersWithState(             # <<<<<<<<<<<<<<
 *                     pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES):
 *                     member.relatedto.append((txmbr.po, 'dependson'))
 */
      __pyx_t_10 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = PyDict_New(); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));

        /* "/home/david/coding/yum/yum/depsolve.pyx":864
 *                 if txmbr.name == po.name:
 *                     continue
 *                 for member in self.tsInfo.getMembersWithState(             # <<<<<<<<<<<<<<
 *                     pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES):
 *                     member.relatedto.append((txmbr.po, 'dependson'))
 */
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_10)) break;
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_10))) {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++;
        } else {
          __pyx_t_5 = PyIter_Next(__pyx_t_10);
          if (!__pyx_t_5) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_DECREF(__pyx_v_member);
        __pyx_v_member = __pyx_t_5;
        __pyx_t_5 = 0;
 865:                     pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES):
      /* "/home/david/coding/yum/yum/depsolve.pyx":865
 *                     continue
 *                 for member in self.tsInfo.getMembersWithState(
 *                     pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES):             # <<<<<<<<<<<<<<
 *                     member.relatedto.append((txmbr.po, 'dependson'))
 * 
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__pkgtup), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL_STATES); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      if (PyDict_SetItem(__pyx_t_10, ((PyObject *)__pyx_n_s__output_states), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_10)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
      if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_13 = 0; __pyx_t_10 = __pyx_t_5; __Pyx_INCREF(__pyx_t_10);
      } else {
        __pyx_t_13 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
 866:                     member.relatedto.append((txmbr.po, 'dependson'))
        /* "/home/david/coding/yum/yum/depsolve.pyx":866
 *                 for member in self.tsInfo.getMembersWithState(
 *                     pkgtup=po.pkgtup, output_states=TS_INSTALL_STATES):
 *                     member.relatedto.append((txmbr.po, 'dependson'))             # <<<<<<<<<<<<<<
 * 
 *         return ret
 */
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_member, __pyx_n_s__relatedto); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_2 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        __Pyx_INCREF(((PyObject *)__pyx_n_s__dependson));
        PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_n_s__dependson));
        __Pyx_GIVEREF(((PyObject *)__pyx_n_s__dependson));
        __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_L14_continue:;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_L8_continue:;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 867: 
 868:         return ret
  /* "/home/david/coding/yum/yum/depsolve.pyx":868
 *                     member.relatedto.append((txmbr.po, 'dependson'))
 * 
 *         return ret             # <<<<<<<<<<<<<<
 * 
 *     def _checkRemove(self, txmbr):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_ret));
  __pyx_r = ((PyObject *)__pyx_v_ret);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._checkInstall");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_txmbr_reqs);
  __Pyx_DECREF(__pyx_v_txmbr_provs);
  __Pyx_DECREF(__pyx_v_oldreqs);
  __Pyx_DECREF(__pyx_v_oldpo);
  __Pyx_DECREF(__pyx_v_ret);
  __Pyx_DECREF(__pyx_v_req);
  __Pyx_DECREF(__pyx_v_provs);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_member);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 869: 
 870:     def _checkRemove(self, txmbr):
/* "/home/david/coding/yum/yum/depsolve.pyx":870
 *         return ret
 * 
 *     def _checkRemove(self, txmbr):             # <<<<<<<<<<<<<<
 *         po = txmbr.po
 *         provs = po.returnPrco('provides')
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkRemove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__checkRemove = {__Pyx_NAMESTR("_checkRemove"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__checkRemove, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkRemove(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_txmbr = 0;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_provs;
  PyObject *__pyx_v_newpoprovs;
  PyObject *__pyx_v_newpo;
  PyObject *__pyx_v_p;
  PyObject *__pyx_v_ret;
  PyObject *__pyx_v_prov;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_hits;
  PyObject *__pyx_v_rn;
  PyObject *__pyx_v_rf;
  PyObject *__pyx_v_rv;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__txmbr,0};
  __Pyx_RefNannySetupContext("_checkRemove");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__txmbr);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_checkRemove", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_checkRemove") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_txmbr = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_txmbr = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_checkRemove", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._checkRemove");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_provs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_newpoprovs = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_newpo = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_p = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_ret = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_prov = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_hits = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rn = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rf = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rv = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":870
 *         return ret
 * 
 *     def _checkRemove(self, txmbr):             # <<<<<<<<<<<<<<
 *         po = txmbr.po
 *         provs = po.returnPrco('provides')
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__checkRemove, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___checkRemove, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 871:         po = txmbr.po
  /* "/home/david/coding/yum/yum/depsolve.pyx":871
 * 
 *     def _checkRemove(self, txmbr):
 *         po = txmbr.po             # <<<<<<<<<<<<<<
 *         provs = po.returnPrco('provides')
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_v_po);
  __pyx_v_po = __pyx_t_1;
  __pyx_t_1 = 0;
 872:         provs = po.returnPrco('provides')
  /* "/home/david/coding/yum/yum/depsolve.pyx":872
 *     def _checkRemove(self, txmbr):
 *         po = txmbr.po
 *         provs = po.returnPrco('provides')             # <<<<<<<<<<<<<<
 * 
 *         # if this is an update, we should check what the new package
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(((PyObject *)__pyx_n_s__provides));
  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__provides));
  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__provides));
  __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_provs);
  __pyx_v_provs = __pyx_t_3;
  __pyx_t_3 = 0;
 873: 
 874:         # if this is an update, we should check what the new package
 875:         # provides to make things faster
 876:         newpoprovs = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":876
 *         # if this is an update, we should check what the new package
 *         # provides to make things faster
 *         newpoprovs = {}             # <<<<<<<<<<<<<<
 *         for newpo in txmbr.updated_by:
 *             for p in newpo.provides:
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __Pyx_DECREF(((PyObject *)__pyx_v_newpoprovs));
  __pyx_v_newpoprovs = __pyx_t_3;
  __pyx_t_3 = 0;
 877:         for newpo in txmbr.updated_by:
  /* "/home/david/coding/yum/yum/depsolve.pyx":877
 *         # provides to make things faster
 *         newpoprovs = {}
 *         for newpo in txmbr.updated_by:             # <<<<<<<<<<<<<<
 *             for p in newpo.provides:
 *                 newpoprovs[p] = 1
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__updated_by); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = 0; __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2);
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_2))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_2))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_2);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_newpo);
    __pyx_v_newpo = __pyx_t_3;
    __pyx_t_3 = 0;
 878:             for p in newpo.provides:
    /* "/home/david/coding/yum/yum/depsolve.pyx":878
 *         newpoprovs = {}
 *         for newpo in txmbr.updated_by:
 *             for p in newpo.provides:             # <<<<<<<<<<<<<<
 *                 newpoprovs[p] = 1
 *         ret = []
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_newpo, __pyx_n_s__provides); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_5 = 0; __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++;
      } else {
        __pyx_t_3 = PyIter_Next(__pyx_t_1);
        if (!__pyx_t_3) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_DECREF(__pyx_v_p);
      __pyx_v_p = __pyx_t_3;
      __pyx_t_3 = 0;
 879:                 newpoprovs[p] = 1
      /* "/home/david/coding/yum/yum/depsolve.pyx":879
 *         for newpo in txmbr.updated_by:
 *             for p in newpo.provides:
 *                 newpoprovs[p] = 1             # <<<<<<<<<<<<<<
 *         ret = []
 * 
 */
      if (PyDict_SetItem(((PyObject *)__pyx_v_newpoprovs), __pyx_v_p, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 880:         ret = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":880
 *             for p in newpo.provides:
 *                 newpoprovs[p] = 1
 *         ret = []             # <<<<<<<<<<<<<<
 * 
 *         # iterate over the provides of the package being removed
 */
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
  __Pyx_DECREF(((PyObject *)__pyx_v_ret));
  __pyx_v_ret = __pyx_t_2;
  __pyx_t_2 = 0;
 881: 
 882:         # iterate over the provides of the package being removed
 883:         # and see what's actually going away
 884:         for prov in provs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":884
 *         # iterate over the provides of the package being removed
 *         # and see what's actually going away
 *         for prov in provs:             # <<<<<<<<<<<<<<
 *             if prov[0].startswith('rpmlib('): # ignore rpmlib() provides
 *                 continue
 */
  if (PyList_CheckExact(__pyx_v_provs) || PyTuple_CheckExact(__pyx_v_provs)) {
    __pyx_t_4 = 0; __pyx_t_2 = __pyx_v_provs; __Pyx_INCREF(__pyx_t_2);
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_provs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_2))) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_2))) {
      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++;
    } else {
      __pyx_t_1 = PyIter_Next(__pyx_t_2);
      if (!__pyx_t_1) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_v_prov);
    __pyx_v_prov = __pyx_t_1;
    __pyx_t_1 = 0;
 885:             if prov[0].startswith('rpmlib('): # ignore rpmlib() provides
    /* "/home/david/coding/yum/yum/depsolve.pyx":885
 *         # and see what's actually going away
 *         for prov in provs:
 *             if prov[0].startswith('rpmlib('): # ignore rpmlib() provides             # <<<<<<<<<<<<<<
 *                 continue
 *             if newpoprovs.has_key(prov):
 */
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_prov, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__startswith); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_69));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_69));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_69));
    __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {
 886:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":886
 *         for prov in provs:
 *             if prov[0].startswith('rpmlib('): # ignore rpmlib() provides
 *                 continue             # <<<<<<<<<<<<<<
 *             if newpoprovs.has_key(prov):
 *                 continue
 */
      goto __pyx_L10_continue;
      goto __pyx_L12;
    }
    __pyx_L12:;
 887:             if newpoprovs.has_key(prov):
    /* "/home/david/coding/yum/yum/depsolve.pyx":887
 *             if prov[0].startswith('rpmlib('): # ignore rpmlib() provides
 *                 continue
 *             if newpoprovs.has_key(prov):             # <<<<<<<<<<<<<<
 *                 continue
 *             # FIXME: This is probably the best place to fix the postfix rename
 */
    __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_newpoprovs), __pyx_n_s__has_key); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_prov);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_prov);
    __Pyx_GIVEREF(__pyx_v_prov);
    __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_7) {
 888:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":888
 *                 continue
 *             if newpoprovs.has_key(prov):
 *                 continue             # <<<<<<<<<<<<<<
 *             # FIXME: This is probably the best place to fix the postfix rename
 *             # problem long term (post .21) ... see compare_providers.
 */
      goto __pyx_L10_continue;
      goto __pyx_L13;
    }
    __pyx_L13:;
 889:             # FIXME: This is probably the best place to fix the postfix rename
 890:             # problem long term (post .21) ... see compare_providers.
 891:             for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
    /* "/home/david/coding/yum/yum/depsolve.pyx":891
 *             # FIXME: This is probably the best place to fix the postfix rename
 *             # problem long term (post .21) ... see compare_providers.
 *             for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():             # <<<<<<<<<<<<<<
 *                 for rn, rf, rv in hits:
 *                     if not self.tsInfo.getProvides(rn, rf, rv):
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getRequires); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PySequence_Tuple(__pyx_v_prov); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
    __pyx_t_3 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_5 = 0; __pyx_t_3 = __pyx_t_6; __Pyx_INCREF(__pyx_t_3);
    } else {
      __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++;
      } else {
        __pyx_t_6 = PyIter_Next(__pyx_t_3);
        if (!__pyx_t_6) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      if (PyTuple_CheckExact(__pyx_t_6) && likely(PyTuple_GET_SIZE(__pyx_t_6) == 2)) {
        PyObject* tuple = __pyx_t_6;
        __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
        __pyx_t_8 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_pkg);
        __pyx_v_pkg = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_hits);
        __pyx_v_hits = __pyx_t_8;
        __pyx_t_8 = 0;
      } else {
        __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_9, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = __Pyx_UnpackItem(__pyx_t_9, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        if (__Pyx_EndUnpack(__pyx_t_9, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_v_pkg);
        __pyx_v_pkg = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_hits);
        __pyx_v_hits = __pyx_t_8;
        __pyx_t_8 = 0;
      }
 892:                 for rn, rf, rv in hits:
      /* "/home/david/coding/yum/yum/depsolve.pyx":892
 *             # problem long term (post .21) ... see compare_providers.
 *             for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
 *                 for rn, rf, rv in hits:             # <<<<<<<<<<<<<<
 *                     if not self.tsInfo.getProvides(rn, rf, rv):
 *                         ret.append( (pkg, self._prco_req_nfv2req(rn, rf, rv)) )
 */
      if (PyList_CheckExact(__pyx_v_hits) || PyTuple_CheckExact(__pyx_v_hits)) {
        __pyx_t_10 = 0; __pyx_t_6 = __pyx_v_hits; __Pyx_INCREF(__pyx_t_6);
      } else {
        __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_hits); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
      }
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++;
        } else {
          __pyx_t_8 = PyIter_Next(__pyx_t_6);
          if (!__pyx_t_8) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        if (PyTuple_CheckExact(__pyx_t_8) && likely(PyTuple_GET_SIZE(__pyx_t_8) == 3)) {
          PyObject* tuple = __pyx_t_8;
          __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
          __pyx_t_9 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_9);
          __pyx_t_11 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_v_rn);
          __pyx_v_rn = __pyx_t_1;
          __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_v_rf);
          __pyx_v_rf = __pyx_t_9;
          __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_v_rv);
          __pyx_v_rv = __pyx_t_11;
          __pyx_t_11 = 0;
        } else {
          __pyx_t_12 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_12, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_9 = __Pyx_UnpackItem(__pyx_t_12, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_11 = __Pyx_UnpackItem(__pyx_t_12, 2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_11);
          if (__Pyx_EndUnpack(__pyx_t_12, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_v_rn);
          __pyx_v_rn = __pyx_t_1;
          __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_v_rf);
          __pyx_v_rf = __pyx_t_9;
          __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_v_rv);
          __pyx_v_rv = __pyx_t_11;
          __pyx_t_11 = 0;
        }
 893:                     if not self.tsInfo.getProvides(rn, rf, rv):
        /* "/home/david/coding/yum/yum/depsolve.pyx":893
 *             for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
 *                 for rn, rf, rv in hits:
 *                     if not self.tsInfo.getProvides(rn, rf, rv):             # <<<<<<<<<<<<<<
 *                         ret.append( (pkg, self._prco_req_nfv2req(rn, rf, rv)) )
 *         return ret
 */
        __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_11 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__getProvides); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_rn);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_rn);
        __Pyx_GIVEREF(__pyx_v_rn);
        __Pyx_INCREF(__pyx_v_rf);
        PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_rf);
        __Pyx_GIVEREF(__pyx_v_rf);
        __Pyx_INCREF(__pyx_v_rv);
        PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_rv);
        __Pyx_GIVEREF(__pyx_v_rv);
        __pyx_t_9 = PyObject_Call(__pyx_t_11, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_13 = (!__pyx_t_7);
        if (__pyx_t_13) {
 894:                         ret.append( (pkg, self._prco_req_nfv2req(rn, rf, rv)) )
          /* "/home/david/coding/yum/yum/depsolve.pyx":894
 *                 for rn, rf, rv in hits:
 *                     if not self.tsInfo.getProvides(rn, rf, rv):
 *                         ret.append( (pkg, self._prco_req_nfv2req(rn, rf, rv)) )             # <<<<<<<<<<<<<<
 *         return ret
 * 
 */
          if (unlikely(__pyx_v_ret == Py_None)) {
            PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
          }
          __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req_nfv2req); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_INCREF(__pyx_v_rn);
          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_rn);
          __Pyx_GIVEREF(__pyx_v_rn);
          __Pyx_INCREF(__pyx_v_rf);
          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_rf);
          __Pyx_GIVEREF(__pyx_v_rf);
          __Pyx_INCREF(__pyx_v_rv);
          PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_rv);
          __Pyx_GIVEREF(__pyx_v_rv);
          __pyx_t_11 = PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_INCREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pkg);
          __Pyx_GIVEREF(__pyx_v_pkg);
          PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_11);
          __Pyx_GIVEREF(__pyx_t_11);
          __pyx_t_11 = 0;
          __pyx_t_14 = PyList_Append(((PyObject *)__pyx_v_ret), __pyx_t_8); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          goto __pyx_L18;
        }
        __pyx_L18:;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_L10_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 895:         return ret
  /* "/home/david/coding/yum/yum/depsolve.pyx":895
 *                     if not self.tsInfo.getProvides(rn, rf, rv):
 *                         ret.append( (pkg, self._prco_req_nfv2req(rn, rf, rv)) )
 *         return ret             # <<<<<<<<<<<<<<
 * 
 *     def _checkFileRequires(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_ret));
  __pyx_r = ((PyObject *)__pyx_v_ret);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._checkRemove");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_provs);
  __Pyx_DECREF(__pyx_v_newpoprovs);
  __Pyx_DECREF(__pyx_v_newpo);
  __Pyx_DECREF(__pyx_v_p);
  __Pyx_DECREF(__pyx_v_ret);
  __Pyx_DECREF(__pyx_v_prov);
  __Pyx_DECREF(__pyx_v_pkg);
  __Pyx_DECREF(__pyx_v_hits);
  __Pyx_DECREF(__pyx_v_rn);
  __Pyx_DECREF(__pyx_v_rf);
  __Pyx_DECREF(__pyx_v_rv);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 896: 
 897:     def _checkFileRequires(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":897
 *         return ret
 * 
 *     def _checkFileRequires(self):             # <<<<<<<<<<<<<<
 *         fileRequires = set()
 *         reverselookup = {}
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkFileRequires(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__checkFileRequires = {__Pyx_NAMESTR("_checkFileRequires"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__checkFileRequires, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkFileRequires(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_fileRequires;
  PyObject *__pyx_v_reverselookup;
  PyObject *__pyx_v_ret;
  PyObject *__pyx_v_resolved;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_name;
  PyObject *__pyx_v_flag;
  PyObject *__pyx_v_evr;
  PyObject *__pyx_v_dep;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_files;
  PyObject *__pyx_v_filename;
  PyObject *__pyx_v_txmbr;
  int __pyx_v_already_broken;
  PyObject *__pyx_v_oldpo;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_checkFileRequires");
  __pyx_self = __pyx_self;
  __pyx_v_fileRequires = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_reverselookup = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_ret = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_resolved = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_name = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_flag = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_evr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_dep = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_files = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_filename = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_oldpo = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":897
 *         return ret
 * 
 *     def _checkFileRequires(self):             # <<<<<<<<<<<<<<
 *         fileRequires = set()
 *         reverselookup = {}
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__checkFileRequires, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___checkFileRequires, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 898:         fileRequires = set()
  /* "/home/david/coding/yum/yum/depsolve.pyx":898
 * 
 *     def _checkFileRequires(self):
 *         fileRequires = set()             # <<<<<<<<<<<<<<
 *         reverselookup = {}
 *         ret = []
 */
  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(__pyx_v_fileRequires);
  __pyx_v_fileRequires = ((PyObject *)__pyx_t_1);
  __pyx_t_1 = 0;
 899:         reverselookup = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":899
 *     def _checkFileRequires(self):
 *         fileRequires = set()
 *         reverselookup = {}             # <<<<<<<<<<<<<<
 *         ret = []
 * 
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_reverselookup));
  __pyx_v_reverselookup = __pyx_t_1;
  __pyx_t_1 = 0;
 900:         ret = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":900
 *         fileRequires = set()
 *         reverselookup = {}
 *         ret = []             # <<<<<<<<<<<<<<
 * 
 *         # generate list of file requirement in rpmdb
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_ret));
  __pyx_v_ret = __pyx_t_1;
  __pyx_t_1 = 0;
 901: 
 902:         # generate list of file requirement in rpmdb
 903:         if self.installedFileRequires is None:
  /* "/home/david/coding/yum/yum/depsolve.pyx":903
 * 
 *         # generate list of file requirement in rpmdb
 *         if self.installedFileRequires is None:             # <<<<<<<<<<<<<<
 *             self.installedFileRequires = {}
 *             self.installedUnresolvedFileRequires = set()
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__pyx_t_1 == Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
 904:             self.installedFileRequires = {}
    /* "/home/david/coding/yum/yum/depsolve.pyx":904
 *         # generate list of file requirement in rpmdb
 *         if self.installedFileRequires is None:
 *             self.installedFileRequires = {}             # <<<<<<<<<<<<<<
 *             self.installedUnresolvedFileRequires = set()
 *             resolved = set()
 */
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s_3, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 905:             self.installedUnresolvedFileRequires = set()
    /* "/home/david/coding/yum/yum/depsolve.pyx":905
 *         if self.installedFileRequires is None:
 *             self.installedFileRequires = {}
 *             self.installedUnresolvedFileRequires = set()             # <<<<<<<<<<<<<<
 *             resolved = set()
 *             for pkg in self.rpmdb.returnPackages():
 */
    __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s_4, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 905; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 906:             resolved = set()
    /* "/home/david/coding/yum/yum/depsolve.pyx":906
 *             self.installedFileRequires = {}
 *             self.installedUnresolvedFileRequires = set()
 *             resolved = set()             # <<<<<<<<<<<<<<
 *             for pkg in self.rpmdb.returnPackages():
 *                 for name, flag, evr in pkg.requires:
 */
    __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __Pyx_DECREF(((PyObject *)__pyx_v_resolved));
    __pyx_v_resolved = __pyx_t_1;
    __pyx_t_1 = 0;
 907:             for pkg in self.rpmdb.returnPackages():
    /* "/home/david/coding/yum/yum/depsolve.pyx":907
 *             self.installedUnresolvedFileRequires = set()
 *             resolved = set()
 *             for pkg in self.rpmdb.returnPackages():             # <<<<<<<<<<<<<<
 *                 for name, flag, evr in pkg.requires:
 *                     if not name.startswith('/'):
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__returnPackages); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4);
    } else {
      __pyx_t_3 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
      } else {
        __pyx_t_1 = PyIter_Next(__pyx_t_4);
        if (!__pyx_t_1) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_v_pkg);
      __pyx_v_pkg = __pyx_t_1;
      __pyx_t_1 = 0;
 908:                 for name, flag, evr in pkg.requires:
      /* "/home/david/coding/yum/yum/depsolve.pyx":908
 *             resolved = set()
 *             for pkg in self.rpmdb.returnPackages():
 *                 for name, flag, evr in pkg.requires:             # <<<<<<<<<<<<<<
 *                     if not name.startswith('/'):
 *                         continue
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__requires); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_5 = 0; __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6);
      } else {
        __pyx_t_5 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++;
        } else {
          __pyx_t_1 = PyIter_Next(__pyx_t_6);
          if (!__pyx_t_1) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        if (PyTuple_CheckExact(__pyx_t_1) && likely(PyTuple_GET_SIZE(__pyx_t_1) == 3)) {
          PyObject* tuple = __pyx_t_1;
          __pyx_t_7 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_7);
          __pyx_t_8 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_8);
          __pyx_t_9 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_v_name);
          __pyx_v_name = __pyx_t_7;
          __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_v_flag);
          __pyx_v_flag = __pyx_t_8;
          __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_v_evr);
          __pyx_v_evr = __pyx_t_9;
          __pyx_t_9 = 0;
        } else {
          __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_10, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_UnpackItem(__pyx_t_10, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = __Pyx_UnpackItem(__pyx_t_10, 2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_9);
          if (__Pyx_EndUnpack(__pyx_t_10, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_v_name);
          __pyx_v_name = __pyx_t_7;
          __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_v_flag);
          __pyx_v_flag = __pyx_t_8;
          __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_v_evr);
          __pyx_v_evr = __pyx_t_9;
          __pyx_t_9 = 0;
        }
 909:                     if not name.startswith('/'):
        /* "/home/david/coding/yum/yum/depsolve.pyx":909
 *             for pkg in self.rpmdb.returnPackages():
 *                 for name, flag, evr in pkg.requires:
 *                     if not name.startswith('/'):             # <<<<<<<<<<<<<<
 *                         continue
 *                     self.installedFileRequires.setdefault(pkg, []).append(name)
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__startswith); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_18));
        PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_kp_s_18));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_18));
        __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_11 = (!__pyx_t_2);
        if (__pyx_t_11) {
 910:                         continue
          /* "/home/david/coding/yum/yum/depsolve.pyx":910
 *                 for name, flag, evr in pkg.requires:
 *                     if not name.startswith('/'):
 *                         continue             # <<<<<<<<<<<<<<
 *                     self.installedFileRequires.setdefault(pkg, []).append(name)
 *                     if name not in resolved:
 */
          goto __pyx_L8_continue;
          goto __pyx_L10;
        }
        __pyx_L10:;
 911:                     self.installedFileRequires.setdefault(pkg, []).append(name)
        /* "/home/david/coding/yum/yum/depsolve.pyx":911
 *                     if not name.startswith('/'):
 *                         continue
 *                     self.installedFileRequires.setdefault(pkg, []).append(name)             # <<<<<<<<<<<<<<
 *                     if name not in resolved:
 *                         dep = self.rpmdb.getProvides(name, flag, evr)
 */
        __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__setdefault); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_8));
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_pkg);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pkg);
        __Pyx_GIVEREF(__pyx_v_pkg);
        PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_t_8));
        __Pyx_GIVEREF(((PyObject *)__pyx_t_8));
        __pyx_t_8 = 0;
        __pyx_t_8 = PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 912:                     if name not in resolved:
        /* "/home/david/coding/yum/yum/depsolve.pyx":912
 *                         continue
 *                     self.installedFileRequires.setdefault(pkg, []).append(name)
 *                     if name not in resolved:             # <<<<<<<<<<<<<<
 *                         dep = self.rpmdb.getProvides(name, flag, evr)
 *                         resolved.add(name)
 */
        __pyx_t_11 = (__Pyx_NegateNonNeg(PySequence_Contains(((PyObject *)__pyx_v_resolved), __pyx_v_name))); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_11) {
 913:                         dep = self.rpmdb.getProvides(name, flag, evr)
          /* "/home/david/coding/yum/yum/depsolve.pyx":913
 *                     self.installedFileRequires.setdefault(pkg, []).append(name)
 *                     if name not in resolved:
 *                         dep = self.rpmdb.getProvides(name, flag, evr)             # <<<<<<<<<<<<<<
 *                         resolved.add(name)
 *                         if not dep:
 */
          __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_8 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getProvides); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_INCREF(__pyx_v_name);
          PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name);
          __Pyx_GIVEREF(__pyx_v_name);
          __Pyx_INCREF(__pyx_v_flag);
          PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_flag);
          __Pyx_GIVEREF(__pyx_v_flag);
          __Pyx_INCREF(__pyx_v_evr);
          PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_evr);
          __Pyx_GIVEREF(__pyx_v_evr);
          __pyx_t_9 = PyObject_Call(__pyx_t_8, __pyx_t_1, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_v_dep);
          __pyx_v_dep = __pyx_t_9;
          __pyx_t_9 = 0;
 914:                         resolved.add(name)
          /* "/home/david/coding/yum/yum/depsolve.pyx":914
 *                     if name not in resolved:
 *                         dep = self.rpmdb.getProvides(name, flag, evr)
 *                         resolved.add(name)             # <<<<<<<<<<<<<<
 *                         if not dep:
 *                             self.installedUnresolvedFileRequires.add(name)
 */
          __pyx_t_12 = PySet_Add(((PyObject *)__pyx_v_resolved), __pyx_v_name); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 915:                         if not dep:
          /* "/home/david/coding/yum/yum/depsolve.pyx":915
 *                         dep = self.rpmdb.getProvides(name, flag, evr)
 *                         resolved.add(name)
 *                         if not dep:             # <<<<<<<<<<<<<<
 *                             self.installedUnresolvedFileRequires.add(name)
 * 
 */
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_v_dep); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __pyx_t_2 = (!__pyx_t_11);
          if (__pyx_t_2) {
 916:                             self.installedUnresolvedFileRequires.add(name)
            /* "/home/david/coding/yum/yum/depsolve.pyx":916
 *                         resolved.add(name)
 *                         if not dep:
 *                             self.installedUnresolvedFileRequires.add(name)             # <<<<<<<<<<<<<<
 * 
 *         # get file requirements from packages not deleted
 */
            __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_4); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__add); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_INCREF(__pyx_v_name);
            PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_name);
            __Pyx_GIVEREF(__pyx_v_name);
            __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            goto __pyx_L12;
          }
          __pyx_L12:;
          goto __pyx_L11;
        }
        __pyx_L11:;
        __pyx_L8_continue:;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L5;
  }
  __pyx_L5:;
 917: 
 918:         # get file requirements from packages not deleted
 919:         for po, files in self.installedFileRequires.iteritems():
  /* "/home/david/coding/yum/yum/depsolve.pyx":919
 * 
 *         # get file requirements from packages not deleted
 *         for po, files in self.installedFileRequires.iteritems():             # <<<<<<<<<<<<<<
 *             if not self._tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
 *                 fileRequires.update(files)
 */
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__iteritems); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_3 = 0; __pyx_t_6 = __pyx_t_4; __Pyx_INCREF(__pyx_t_6);
  } else {
    __pyx_t_3 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_6))) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_6))) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++;
    } else {
      __pyx_t_4 = PyIter_Next(__pyx_t_6);
      if (!__pyx_t_4) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    if (PyTuple_CheckExact(__pyx_t_4) && likely(PyTuple_GET_SIZE(__pyx_t_4) == 2)) {
      PyObject* tuple = __pyx_t_4;
      __pyx_t_8 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_8);
      __pyx_t_9 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_po);
      __pyx_v_po = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_v_files);
      __pyx_v_files = __pyx_t_9;
      __pyx_t_9 = 0;
    } else {
      __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_8 = __Pyx_UnpackItem(__pyx_t_1, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_UnpackItem(__pyx_t_1, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      if (__Pyx_EndUnpack(__pyx_t_1, 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_po);
      __pyx_v_po = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_v_files);
      __pyx_v_files = __pyx_t_9;
      __pyx_t_9 = 0;
    }
 920:             if not self._tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
    /* "/home/david/coding/yum/yum/depsolve.pyx":920
 *         # get file requirements from packages not deleted
 *         for po, files in self.installedFileRequires.iteritems():
 *             if not self._tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):             # <<<<<<<<<<<<<<
 *                 fileRequires.update(files)
 *                 for filename in files:
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__output_states), __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyEval_CallObjectWithKeywords(__pyx_t_9, __pyx_t_8, ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_11 = (!__pyx_t_2);
    if (__pyx_t_11) {
 921:                 fileRequires.update(files)
      /* "/home/david/coding/yum/yum/depsolve.pyx":921
 *         for po, files in self.installedFileRequires.iteritems():
 *             if not self._tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
 *                 fileRequires.update(files)             # <<<<<<<<<<<<<<
 *                 for filename in files:
 *                     reverselookup.setdefault(filename, []).append(po)
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_fileRequires, __pyx_n_s__update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_files);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_files);
      __Pyx_GIVEREF(__pyx_v_files);
      __pyx_t_8 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 922:                 for filename in files:
      /* "/home/david/coding/yum/yum/depsolve.pyx":922
 *             if not self._tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
 *                 fileRequires.update(files)
 *                 for filename in files:             # <<<<<<<<<<<<<<
 *                     reverselookup.setdefault(filename, []).append(po)
 * 
 */
      if (PyList_CheckExact(__pyx_v_files) || PyTuple_CheckExact(__pyx_v_files)) {
        __pyx_t_5 = 0; __pyx_t_8 = __pyx_v_files; __Pyx_INCREF(__pyx_t_8);
      } else {
        __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_files); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
      }
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break;
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_8))) {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++;
        } else {
          __pyx_t_4 = PyIter_Next(__pyx_t_8);
          if (!__pyx_t_4) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_DECREF(__pyx_v_filename);
        __pyx_v_filename = __pyx_t_4;
        __pyx_t_4 = 0;
 923:                     reverselookup.setdefault(filename, []).append(po)
        /* "/home/david/coding/yum/yum/depsolve.pyx":923
 *                 fileRequires.update(files)
 *                 for filename in files:
 *                     reverselookup.setdefault(filename, []).append(po)             # <<<<<<<<<<<<<<
 * 
 *         fileRequires -= self.installedUnresolvedFileRequires
 */
        __pyx_t_4 = PyObject_GetAttr(((PyObject *)__pyx_v_reverselookup), __pyx_n_s__setdefault); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_1));
        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_v_filename);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_filename);
        __Pyx_GIVEREF(__pyx_v_filename);
        PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_t_1));
        __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
        __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_po); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L15;
    }
    __pyx_L15:;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 924: 
 925:         fileRequires -= self.installedUnresolvedFileRequires
  /* "/home/david/coding/yum/yum/depsolve.pyx":925
 *                     reverselookup.setdefault(filename, []).append(po)
 * 
 *         fileRequires -= self.installedUnresolvedFileRequires             # <<<<<<<<<<<<<<
 * 
 *         # get file requirements from new packages
 */
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_v_fileRequires, __pyx_t_6); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_v_fileRequires);
  __pyx_v_fileRequires = __pyx_t_8;
  __pyx_t_8 = 0;
 926: 
 927:         # get file requirements from new packages
 928:         for txmbr in self._tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
  /* "/home/david/coding/yum/yum/depsolve.pyx":928
 * 
 *         # get file requirements from new packages
 *         for txmbr in self._tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):             # <<<<<<<<<<<<<<
 *             for name, flag, evr in txmbr.po.requires:
 *                 if name.startswith('/'):
 */
  __pyx_t_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___tsInfo); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = PyObject_GetAttr(__pyx_t_8, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_8));
  __pyx_t_9 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL_STATES); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_8, ((PyObject *)__pyx_n_s__output_states), __pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyEval_CallObjectWithKeywords(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
  if (PyList_CheckExact(__pyx_t_9) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_3 = 0; __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8);
  } else {
    __pyx_t_3 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_8))) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_8)) break;
      __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_t_9); __pyx_t_3++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_8))) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
      __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_t_9); __pyx_t_3++;
    } else {
      __pyx_t_9 = PyIter_Next(__pyx_t_8);
      if (!__pyx_t_9) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_9;
    __pyx_t_9 = 0;
 929:             for name, flag, evr in txmbr.po.requires:
    /* "/home/david/coding/yum/yum/depsolve.pyx":929
 *         # get file requirements from new packages
 *         for txmbr in self._tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
 *             for name, flag, evr in txmbr.po.requires:             # <<<<<<<<<<<<<<
 *                 if name.startswith('/'):
 *                     # check if file requires was already unresolved in update
 */
    __pyx_t_9 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__requires); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_5 = 0; __pyx_t_9 = __pyx_t_6; __Pyx_INCREF(__pyx_t_9);
    } else {
      __pyx_t_5 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_9)) break;
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_9))) {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++;
      } else {
        __pyx_t_6 = PyIter_Next(__pyx_t_9);
        if (!__pyx_t_6) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      if (PyTuple_CheckExact(__pyx_t_6) && likely(PyTuple_GET_SIZE(__pyx_t_6) == 3)) {
        PyObject* tuple = __pyx_t_6;
        __pyx_t_1 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_4);
        __pyx_t_7 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_name);
        __pyx_v_name = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_flag);
        __pyx_v_flag = __pyx_t_4;
        __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_v_evr);
        __pyx_v_evr = __pyx_t_7;
        __pyx_t_7 = 0;
      } else {
        __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_10, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_10, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_7 = __Pyx_UnpackItem(__pyx_t_10, 2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        if (__Pyx_EndUnpack(__pyx_t_10, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_v_name);
        __pyx_v_name = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_flag);
        __pyx_v_flag = __pyx_t_4;
        __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_v_evr);
        __pyx_v_evr = __pyx_t_7;
        __pyx_t_7 = 0;
      }
 930:                 if name.startswith('/'):
      /* "/home/david/coding/yum/yum/depsolve.pyx":930
 *         for txmbr in self._tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
 *             for name, flag, evr in txmbr.po.requires:
 *                 if name.startswith('/'):             # <<<<<<<<<<<<<<
 *                     # check if file requires was already unresolved in update
 *                     if name in self.installedUnresolvedFileRequires:
 */
      __pyx_t_6 = PyObject_GetAttr(__pyx_v_name, __pyx_n_s__startswith); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_18));
      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_s_18));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_18));
      __pyx_t_4 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_11) {
 931:                     # check if file requires was already unresolved in update
 932:                     if name in self.installedUnresolvedFileRequires:
        /* "/home/david/coding/yum/yum/depsolve.pyx":932
 *                 if name.startswith('/'):
 *                     # check if file requires was already unresolved in update
 *                     if name in self.installedUnresolvedFileRequires:             # <<<<<<<<<<<<<<
 *                         already_broken = False
 *                         for oldpo in txmbr.updates:
 */
        __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_11 = ((PySequence_Contains(__pyx_t_4, __pyx_v_name))); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_11) {
 933:                         already_broken = False
          /* "/home/david/coding/yum/yum/depsolve.pyx":933
 *                     # check if file requires was already unresolved in update
 *                     if name in self.installedUnresolvedFileRequires:
 *                         already_broken = False             # <<<<<<<<<<<<<<
 *                         for oldpo in txmbr.updates:
 *                             if oldpo.checkPrco('requires', (name, None, (None, None, None))):
 */
          __pyx_v_already_broken = 0;
 934:                         for oldpo in txmbr.updates:
          /* "/home/david/coding/yum/yum/depsolve.pyx":934
 *                     if name in self.installedUnresolvedFileRequires:
 *                         already_broken = False
 *                         for oldpo in txmbr.updates:             # <<<<<<<<<<<<<<
 *                             if oldpo.checkPrco('requires', (name, None, (None, None, None))):
 *                                 already_broken = True
 */
          __pyx_t_4 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__updates); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_4);
          if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_13 = 0; __pyx_t_7 = __pyx_t_4; __Pyx_INCREF(__pyx_t_7);
          } else {
            __pyx_t_13 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(PyList_CheckExact(__pyx_t_7))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break;
              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++;
            } else if (likely(PyTuple_CheckExact(__pyx_t_7))) {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++;
            } else {
              __pyx_t_4 = PyIter_Next(__pyx_t_7);
              if (!__pyx_t_4) {
                if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_DECREF(__pyx_v_oldpo);
            __pyx_v_oldpo = __pyx_t_4;
            __pyx_t_4 = 0;
 935:                             if oldpo.checkPrco('requires', (name, None, (None, None, None))):
            /* "/home/david/coding/yum/yum/depsolve.pyx":935
 *                         already_broken = False
 *                         for oldpo in txmbr.updates:
 *                             if oldpo.checkPrco('requires', (name, None, (None, None, None))):             # <<<<<<<<<<<<<<
 *                                 already_broken = True
 *                                 break
 */
            __pyx_t_4 = PyObject_GetAttr(__pyx_v_oldpo, __pyx_n_s__checkPrco); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_INCREF(Py_None);
            PyTuple_SET_ITEM(__pyx_t_6, 0, Py_None);
            __Pyx_GIVEREF(Py_None);
            __Pyx_INCREF(Py_None);
            PyTuple_SET_ITEM(__pyx_t_6, 1, Py_None);
            __Pyx_GIVEREF(Py_None);
            __Pyx_INCREF(Py_None);
            PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None);
            __Pyx_GIVEREF(Py_None);
            __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_INCREF(__pyx_v_name);
            PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name);
            __Pyx_GIVEREF(__pyx_v_name);
            __Pyx_INCREF(Py_None);
            PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
            __Pyx_GIVEREF(Py_None);
            PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
            __Pyx_GIVEREF(__pyx_t_6);
            __pyx_t_6 = 0;
            __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_INCREF(((PyObject *)__pyx_n_s__requires));
            PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_n_s__requires));
            __Pyx_GIVEREF(((PyObject *)__pyx_n_s__requires));
            PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
            __Pyx_GIVEREF(__pyx_t_1);
            __pyx_t_1 = 0;
            __pyx_t_1 = PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_11) {
 936:                                 already_broken = True
              /* "/home/david/coding/yum/yum/depsolve.pyx":936
 *                         for oldpo in txmbr.updates:
 *                             if oldpo.checkPrco('requires', (name, None, (None, None, None))):
 *                                 already_broken = True             # <<<<<<<<<<<<<<
 *                                 break
 *                         if already_broken:
 */
              __pyx_v_already_broken = 1;
 937:                                 break
              /* "/home/david/coding/yum/yum/depsolve.pyx":937
 *                             if oldpo.checkPrco('requires', (name, None, (None, None, None))):
 *                                 already_broken = True
 *                                 break             # <<<<<<<<<<<<<<
 *                         if already_broken:
 *                             continue
 */
              goto __pyx_L25_break;
              goto __pyx_L26;
            }
            __pyx_L26:;
          }
          __pyx_L25_break:;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 938:                         if already_broken:
          /* "/home/david/coding/yum/yum/depsolve.pyx":938
 *                                 already_broken = True
 *                                 break
 *                         if already_broken:             # <<<<<<<<<<<<<<
 *                             continue
 *                     fileRequires.add(name)
 */
          if (__pyx_v_already_broken) {
 939:                             continue
            /* "/home/david/coding/yum/yum/depsolve.pyx":939
 *                                 break
 *                         if already_broken:
 *                             continue             # <<<<<<<<<<<<<<
 *                     fileRequires.add(name)
 *                     reverselookup.setdefault(name, []).append(txmbr.po)
 */
            goto __pyx_L20_continue;
            goto __pyx_L27;
          }
          __pyx_L27:;
          goto __pyx_L23;
        }
        __pyx_L23:;
 940:                     fileRequires.add(name)
        /* "/home/david/coding/yum/yum/depsolve.pyx":940
 *                         if already_broken:
 *                             continue
 *                     fileRequires.add(name)             # <<<<<<<<<<<<<<
 *                     reverselookup.setdefault(name, []).append(txmbr.po)
 * 
 */
        __pyx_t_7 = PyObject_GetAttr(__pyx_v_fileRequires, __pyx_n_s__add); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_name);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_name);
        __Pyx_GIVEREF(__pyx_v_name);
        __pyx_t_6 = PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 941:                     reverselookup.setdefault(name, []).append(txmbr.po)
        /* "/home/david/coding/yum/yum/depsolve.pyx":941
 *                             continue
 *                     fileRequires.add(name)
 *                     reverselookup.setdefault(name, []).append(txmbr.po)             # <<<<<<<<<<<<<<
 * 
 *         # check the file requires
 */
        __pyx_t_6 = PyObject_GetAttr(((PyObject *)__pyx_v_reverselookup), __pyx_n_s__setdefault); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_1));
        __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_v_name);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_name);
        __Pyx_GIVEREF(__pyx_v_name);
        PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_t_1));
        __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
        __pyx_t_1 = 0;
        __pyx_t_1 = PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L22;
      }
      __pyx_L22:;
      __pyx_L20_continue:;
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 942: 
 943:         # check the file requires
 944:         for filename in fileRequires:
  /* "/home/david/coding/yum/yum/depsolve.pyx":944
 * 
 *         # check the file requires
 *         for filename in fileRequires:             # <<<<<<<<<<<<<<
 *             if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
 *                 for po in reverselookup[filename]:
 */
  if (PyList_CheckExact(__pyx_v_fileRequires) || PyTuple_CheckExact(__pyx_v_fileRequires)) {
    __pyx_t_3 = 0; __pyx_t_8 = __pyx_v_fileRequires; __Pyx_INCREF(__pyx_t_8);
  } else {
    __pyx_t_3 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_fileRequires); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_8))) {
      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_8)) break;
      __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_t_9); __pyx_t_3++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_8))) {
      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
      __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_3); __Pyx_INCREF(__pyx_t_9); __pyx_t_3++;
    } else {
      __pyx_t_9 = PyIter_Next(__pyx_t_8);
      if (!__pyx_t_9) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_DECREF(__pyx_v_filename);
    __pyx_v_filename = __pyx_t_9;
    __pyx_t_9 = 0;
 945:             if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
    /* "/home/david/coding/yum/yum/depsolve.pyx":945
 *         # check the file requires
 *         for filename in fileRequires:
 *             if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):             # <<<<<<<<<<<<<<
 *                 for po in reverselookup[filename]:
 *                     ret.append( (po, (filename, 0, '')) )
 */
    __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_6 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__getOldProvides); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v_filename);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_filename);
    __Pyx_GIVEREF(__pyx_v_filename);
    __pyx_t_7 = PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_2 = (!__pyx_t_11);
    if (__pyx_t_2) {
      __pyx_t_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = PyObject_GetAttr(__pyx_t_7, __pyx_n_s__getNewProvides); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_filename);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_filename);
      __Pyx_GIVEREF(__pyx_v_filename);
      __pyx_t_6 = PyObject_Call(__pyx_t_9, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_14 = (!__pyx_t_11);
      __pyx_t_11 = __pyx_t_14;
    } else {
      __pyx_t_11 = __pyx_t_2;
    }
    if (__pyx_t_11) {
 946:                 for po in reverselookup[filename]:
      /* "/home/david/coding/yum/yum/depsolve.pyx":946
 *         for filename in fileRequires:
 *             if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
 *                 for po in reverselookup[filename]:             # <<<<<<<<<<<<<<
 *                     ret.append( (po, (filename, 0, '')) )
 * 
 */
      __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_reverselookup), __pyx_v_filename); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_5 = 0; __pyx_t_7 = __pyx_t_6; __Pyx_INCREF(__pyx_t_7);
      } else {
        __pyx_t_5 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_7)) break;
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_7))) {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_5); __Pyx_INCREF(__pyx_t_6); __pyx_t_5++;
        } else {
          __pyx_t_6 = PyIter_Next(__pyx_t_7);
          if (!__pyx_t_6) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_DECREF(__pyx_v_po);
        __pyx_v_po = __pyx_t_6;
        __pyx_t_6 = 0;
 947:                     ret.append( (po, (filename, 0, '')) )
        /* "/home/david/coding/yum/yum/depsolve.pyx":947
 *             if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
 *                 for po in reverselookup[filename]:
 *                     ret.append( (po, (filename, 0, '')) )             # <<<<<<<<<<<<<<
 * 
 *         return ret
 */
        if (unlikely(__pyx_v_ret == Py_None)) {
          PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
        }
        __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_filename);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_filename);
        __Pyx_GIVEREF(__pyx_v_filename);
        __Pyx_INCREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        __Pyx_INCREF(((PyObject *)__pyx_kp_s_71));
        PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_kp_s_71));
        __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_71));
        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_12 = PyList_Append(((PyObject *)__pyx_v_ret), __pyx_t_9); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L30;
    }
    __pyx_L30:;
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 948: 
 949:         return ret
  /* "/home/david/coding/yum/yum/depsolve.pyx":949
 *                     ret.append( (po, (filename, 0, '')) )
 * 
 *         return ret             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_ret));
  __pyx_r = ((PyObject *)__pyx_v_ret);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._checkFileRequires");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_fileRequires);
  __Pyx_DECREF(__pyx_v_reverselookup);
  __Pyx_DECREF(__pyx_v_ret);
  __Pyx_DECREF(__pyx_v_resolved);
  __Pyx_DECREF(__pyx_v_pkg);
  __Pyx_DECREF(__pyx_v_name);
  __Pyx_DECREF(__pyx_v_flag);
  __Pyx_DECREF(__pyx_v_evr);
  __Pyx_DECREF(__pyx_v_dep);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_files);
  __Pyx_DECREF(__pyx_v_filename);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_DECREF(__pyx_v_oldpo);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 950: 
 951: 
 952:     def _checkConflicts(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":952
 * 
 * 
 *     def _checkConflicts(self):             # <<<<<<<<<<<<<<
 *         ret = [ ]
 *         for po in self.rpmdb.returnPackages():
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkConflicts(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__checkConflicts = {__Pyx_NAMESTR("_checkConflicts"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__checkConflicts, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__checkConflicts(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_ret;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_conflict;
  PyObject *__pyx_v_r;
  PyObject *__pyx_v_f;
  PyObject *__pyx_v_v;
  PyObject *__pyx_v_conflicting_po;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("_checkConflicts");
  __pyx_self = __pyx_self;
  __pyx_v_ret = ((PyObject *)Py_None); __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_conflict = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_r = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_f = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_v = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_conflicting_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":952
 * 
 * 
 *     def _checkConflicts(self):             # <<<<<<<<<<<<<<
 *         ret = [ ]
 *         for po in self.rpmdb.returnPackages():
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__checkConflicts, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___checkConflicts, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 953:         ret = [ ]
  /* "/home/david/coding/yum/yum/depsolve.pyx":953
 * 
 *     def _checkConflicts(self):
 *         ret = [ ]             # <<<<<<<<<<<<<<
 *         for po in self.rpmdb.returnPackages():
 *             if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 953; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  __Pyx_DECREF(((PyObject *)__pyx_v_ret));
  __pyx_v_ret = __pyx_t_1;
  __pyx_t_1 = 0;
 954:         for po in self.rpmdb.returnPackages():
  /* "/home/david/coding/yum/yum/depsolve.pyx":954
 *     def _checkConflicts(self):
 *         ret = [ ]
 *         for po in self.rpmdb.returnPackages():             # <<<<<<<<<<<<<<
 *             if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
 *                 continue
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__returnPackages); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = 0; __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++;
    } else {
      __pyx_t_1 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_1) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_v_po);
    __pyx_v_po = __pyx_t_1;
    __pyx_t_1 = 0;
 955:             if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
    /* "/home/david/coding/yum/yum/depsolve.pyx":955
 *         ret = [ ]
 *         for po in self.rpmdb.returnPackages():
 *             if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):             # <<<<<<<<<<<<<<
 *                 continue
 *             for conflict in po.returnPrco('conflicts'):
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_REMOVE_STATES); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__output_states), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyEval_CallObjectWithKeywords(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {
 956:                 continue
      /* "/home/david/coding/yum/yum/depsolve.pyx":956
 *         for po in self.rpmdb.returnPackages():
 *             if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
 *                 continue             # <<<<<<<<<<<<<<
 *             for conflict in po.returnPrco('conflicts'):
 *                 (r, f, v) = conflict
 */
      goto __pyx_L5_continue;
      goto __pyx_L7;
    }
    __pyx_L7:;
 957:             for conflict in po.returnPrco('conflicts'):
    /* "/home/david/coding/yum/yum/depsolve.pyx":957
 *             if self.tsInfo.getMembersWithState(po.pkgtup, output_states=TS_REMOVE_STATES):
 *                 continue
 *             for conflict in po.returnPrco('conflicts'):             # <<<<<<<<<<<<<<
 *                 (r, f, v) = conflict
 *                 for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_n_s__conflicts));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__conflicts));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__conflicts));
    __pyx_t_5 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_8 = 0; __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1);
    } else {
      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_1))) {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++;
      } else {
        __pyx_t_5 = PyIter_Next(__pyx_t_1);
        if (!__pyx_t_5) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_DECREF(__pyx_v_conflict);
      __pyx_v_conflict = __pyx_t_5;
      __pyx_t_5 = 0;
 958:                 (r, f, v) = conflict
      /* "/home/david/coding/yum/yum/depsolve.pyx":958
 *                 continue
 *             for conflict in po.returnPrco('conflicts'):
 *                 (r, f, v) = conflict             # <<<<<<<<<<<<<<
 *                 for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 */
      if (PyTuple_CheckExact(__pyx_v_conflict) && likely(PyTuple_GET_SIZE(__pyx_v_conflict) == 3)) {
        PyObject* tuple = __pyx_v_conflict;
        __pyx_t_5 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_5);
        __pyx_t_6 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_6);
        __pyx_t_4 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_v_r);
        __pyx_v_r = __pyx_t_5;
        __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_v_f);
        __pyx_v_f = __pyx_t_6;
        __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_v);
        __pyx_v_v = __pyx_t_4;
        __pyx_t_4 = 0;
      } else {
        __pyx_t_9 = PyObject_GetIter(__pyx_v_conflict); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __Pyx_UnpackItem(__pyx_t_9, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_9, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_UnpackItem(__pyx_t_9, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_EndUnpack(__pyx_t_9, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_v_r);
        __pyx_v_r = __pyx_t_5;
        __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_v_f);
        __pyx_v_f = __pyx_t_6;
        __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_v);
        __pyx_v_v = __pyx_t_4;
        __pyx_t_4 = 0;
      }
 959:                 for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
      /* "/home/david/coding/yum/yum/depsolve.pyx":959
 *             for conflict in po.returnPrco('conflicts'):
 *                 (r, f, v) = conflict
 *                 for conflicting_po in self.tsInfo.getNewProvides(r, f, v):             # <<<<<<<<<<<<<<
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 *                         continue
 */
      __pyx_t_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__getNewProvides); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_r);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_r);
      __Pyx_GIVEREF(__pyx_v_r);
      __Pyx_INCREF(__pyx_v_f);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_f);
      __Pyx_GIVEREF(__pyx_v_f);
      __Pyx_INCREF(__pyx_v_v);
      PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_v);
      __Pyx_GIVEREF(__pyx_v_v);
      __pyx_t_5 = PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_10 = 0; __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4);
      } else {
        __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++;
        } else {
          __pyx_t_5 = PyIter_Next(__pyx_t_4);
          if (!__pyx_t_5) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 959; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_DECREF(__pyx_v_conflicting_po);
        __pyx_v_conflicting_po = __pyx_t_5;
        __pyx_t_5 = 0;
 960:                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
        /* "/home/david/coding/yum/yum/depsolve.pyx":960
 *                 (r, f, v) = conflict
 *                 for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:             # <<<<<<<<<<<<<<
 *                         continue
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 */
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_5, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_5, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_9, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__pyx_t_7) {
          __pyx_t_5 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_9 = PySequence_GetSlice(__pyx_t_5, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = PySequence_GetSlice(__pyx_t_5, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyObject_RichCompare(__pyx_t_9, __pyx_t_6, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_12 = __pyx_t_11;
        } else {
          __pyx_t_12 = __pyx_t_7;
        }
        if (__pyx_t_12) {
 961:                         continue
          /* "/home/david/coding/yum/yum/depsolve.pyx":961
 *                 for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 *                         continue             # <<<<<<<<<<<<<<
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 *                                  conflicting_po) )
 */
          goto __pyx_L10_continue;
          goto __pyx_L12;
        }
        __pyx_L12:;
 962:                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
        /* "/home/david/coding/yum/yum/depsolve.pyx":962
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 *                         continue
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),             # <<<<<<<<<<<<<<
 *                                  conflicting_po) )
 *         for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
 */
        if (unlikely(__pyx_v_ret == Py_None)) {
          PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
        }
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req_nfv2req); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_r);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_r);
        __Pyx_GIVEREF(__pyx_v_r);
        __Pyx_INCREF(__pyx_v_f);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_f);
        __Pyx_GIVEREF(__pyx_v_f);
        __Pyx_INCREF(__pyx_v_v);
        PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_v);
        __Pyx_GIVEREF(__pyx_v_v);
        __pyx_t_9 = PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 963:                                  conflicting_po) )
        /* "/home/david/coding/yum/yum/depsolve.pyx":963
 *                         continue
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 *                                  conflicting_po) )             # <<<<<<<<<<<<<<
 *         for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
 *             po = txmbr.po
 */
        __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_9);
        __Pyx_INCREF(__pyx_v_conflicting_po);
        PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_conflicting_po);
        __Pyx_GIVEREF(__pyx_v_conflicting_po);
        __pyx_t_9 = 0;
        __pyx_t_13 = PyList_Append(((PyObject *)__pyx_v_ret), __pyx_t_6); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_L10_continue:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_L5_continue:;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 964:         for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
  /* "/home/david/coding/yum/yum/depsolve.pyx":964
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 *                                  conflicting_po) )
 *         for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):             # <<<<<<<<<<<<<<
 *             po = txmbr.po
 *             for conflict in txmbr.po.returnPrco('conflicts'):
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__getMembersWithState); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL_STATES); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__output_states), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_2 = 0; __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++;
    } else {
      __pyx_t_4 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_4) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_4;
    __pyx_t_4 = 0;
 965:             po = txmbr.po
    /* "/home/david/coding/yum/yum/depsolve.pyx":965
 *                                  conflicting_po) )
 *         for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
 *             po = txmbr.po             # <<<<<<<<<<<<<<
 *             for conflict in txmbr.po.returnPrco('conflicts'):
 *                 (r, f, v) = conflict
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_v_po);
    __pyx_v_po = __pyx_t_4;
    __pyx_t_4 = 0;
 966:             for conflict in txmbr.po.returnPrco('conflicts'):
    /* "/home/david/coding/yum/yum/depsolve.pyx":966
 *         for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
 *             po = txmbr.po
 *             for conflict in txmbr.po.returnPrco('conflicts'):             # <<<<<<<<<<<<<<
 *                 (r, f, v) = conflict
 *                 for conflicting_po in self.tsInfo.getProvides(r, f, v):
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__po); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyObject_GetAttr(__pyx_t_4, __pyx_n_s__returnPrco); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)__pyx_n_s__conflicts));
    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_n_s__conflicts));
    __Pyx_GIVEREF(((PyObject *)__pyx_n_s__conflicts));
    __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_8 = 0; __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4);
    } else {
      __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++;
      } else {
        __pyx_t_6 = PyIter_Next(__pyx_t_4);
        if (!__pyx_t_6) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_DECREF(__pyx_v_conflict);
      __pyx_v_conflict = __pyx_t_6;
      __pyx_t_6 = 0;
 967:                 (r, f, v) = conflict
      /* "/home/david/coding/yum/yum/depsolve.pyx":967
 *             po = txmbr.po
 *             for conflict in txmbr.po.returnPrco('conflicts'):
 *                 (r, f, v) = conflict             # <<<<<<<<<<<<<<
 *                 for conflicting_po in self.tsInfo.getProvides(r, f, v):
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 */
      if (PyTuple_CheckExact(__pyx_v_conflict) && likely(PyTuple_GET_SIZE(__pyx_v_conflict) == 3)) {
        PyObject* tuple = __pyx_v_conflict;
        __pyx_t_6 = PyTuple_GET_ITEM(tuple, 0); __Pyx_INCREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_GET_ITEM(tuple, 1); __Pyx_INCREF(__pyx_t_1);
        __pyx_t_9 = PyTuple_GET_ITEM(tuple, 2); __Pyx_INCREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_v_r);
        __pyx_v_r = __pyx_t_6;
        __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_f);
        __pyx_v_f = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_v);
        __pyx_v_v = __pyx_t_9;
        __pyx_t_9 = 0;
      } else {
        __pyx_t_5 = PyObject_GetIter(__pyx_v_conflict); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_UnpackItem(__pyx_t_5, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = __Pyx_UnpackItem(__pyx_t_5, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = __Pyx_UnpackItem(__pyx_t_5, 2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
        if (__Pyx_EndUnpack(__pyx_t_5, 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_v_r);
        __pyx_v_r = __pyx_t_6;
        __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_v_f);
        __pyx_v_f = __pyx_t_1;
        __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_v_v);
        __pyx_v_v = __pyx_t_9;
        __pyx_t_9 = 0;
      }
 968:                 for conflicting_po in self.tsInfo.getProvides(r, f, v):
      /* "/home/david/coding/yum/yum/depsolve.pyx":968
 *             for conflict in txmbr.po.returnPrco('conflicts'):
 *                 (r, f, v) = conflict
 *                 for conflicting_po in self.tsInfo.getProvides(r, f, v):             # <<<<<<<<<<<<<<
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 *                         continue
 */
      __pyx_t_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_9, __pyx_n_s__getProvides); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_v_r);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_r);
      __Pyx_GIVEREF(__pyx_v_r);
      __Pyx_INCREF(__pyx_v_f);
      PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_f);
      __Pyx_GIVEREF(__pyx_v_f);
      __Pyx_INCREF(__pyx_v_v);
      PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_v);
      __Pyx_GIVEREF(__pyx_v_v);
      __pyx_t_6 = PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (PyList_CheckExact(__pyx_t_6) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_10 = 0; __pyx_t_9 = __pyx_t_6; __Pyx_INCREF(__pyx_t_9);
      } else {
        __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_9))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_9))) {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++;
        } else {
          __pyx_t_6 = PyIter_Next(__pyx_t_9);
          if (!__pyx_t_6) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_DECREF(__pyx_v_conflicting_po);
        __pyx_v_conflicting_po = __pyx_t_6;
        __pyx_t_6 = 0;
 969:                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
        /* "/home/david/coding/yum/yum/depsolve.pyx":969
 *                 (r, f, v) = conflict
 *                 for conflicting_po in self.tsInfo.getProvides(r, f, v):
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:             # <<<<<<<<<<<<<<
 *                         continue
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 */
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_6, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, 0, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_12) {
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_conflicting_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = PySequence_GetSlice(__pyx_t_6, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__pkgtup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = PySequence_GetSlice(__pyx_t_6, 2, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_EQ); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_11 = __pyx_t_7;
        } else {
          __pyx_t_11 = __pyx_t_12;
        }
        if (__pyx_t_11) {
 970:                         continue
          /* "/home/david/coding/yum/yum/depsolve.pyx":970
 *                 for conflicting_po in self.tsInfo.getProvides(r, f, v):
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 *                         continue             # <<<<<<<<<<<<<<
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 *                                  conflicting_po) )
 */
          goto __pyx_L17_continue;
          goto __pyx_L19;
        }
        __pyx_L19:;
 971:                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
        /* "/home/david/coding/yum/yum/depsolve.pyx":971
 *                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
 *                         continue
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),             # <<<<<<<<<<<<<<
 *                                  conflicting_po) )
 *         return ret
 */
        if (unlikely(__pyx_v_ret == Py_None)) {
          PyErr_SetString(PyExc_AttributeError, "'NoneType' object has no attribute 'append'"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 
        }
        __pyx_t_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s___prco_req_nfv2req); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_r);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_r);
        __Pyx_GIVEREF(__pyx_v_r);
        __Pyx_INCREF(__pyx_v_f);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_f);
        __Pyx_GIVEREF(__pyx_v_f);
        __Pyx_INCREF(__pyx_v_v);
        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_v);
        __Pyx_GIVEREF(__pyx_v_v);
        __pyx_t_5 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 972:                                  conflicting_po) )
        /* "/home/david/coding/yum/yum/depsolve.pyx":972
 *                         continue
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 *                                  conflicting_po) )             # <<<<<<<<<<<<<<
 *         return ret
 * 
 */
        __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        __Pyx_INCREF(__pyx_v_conflicting_po);
        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_conflicting_po);
        __Pyx_GIVEREF(__pyx_v_conflicting_po);
        __pyx_t_5 = 0;
        __pyx_t_13 = PyList_Append(((PyObject *)__pyx_v_ret), __pyx_t_1); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_L17_continue:;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 973:         return ret
  /* "/home/david/coding/yum/yum/depsolve.pyx":973
 *                     ret.append( (po, self._prco_req_nfv2req(r, f, v),
 *                                  conflicting_po) )
 *         return ret             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_ret));
  __pyx_r = ((PyObject *)__pyx_v_ret);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._checkConflicts");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_ret);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_conflict);
  __Pyx_DECREF(__pyx_v_r);
  __Pyx_DECREF(__pyx_v_f);
  __Pyx_DECREF(__pyx_v_v);
  __Pyx_DECREF(__pyx_v_conflicting_po);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 974: 
 975: 
 976:     def isPackageInstalled(self, pkgname):
/* "/home/david/coding/yum/yum/depsolve.pyx":976
 * 
 * 
 *     def isPackageInstalled(self, pkgname):             # <<<<<<<<<<<<<<
 *         installed = False
 *         if self.rpmdb.contains(name=pkgname):
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_isPackageInstalled(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve_isPackageInstalled = {__Pyx_NAMESTR("isPackageInstalled"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve_isPackageInstalled, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve_isPackageInstalled(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pkgname = 0;
  int __pyx_v_installed;
  PyObject *__pyx_v_lst;
  PyObject *__pyx_v_txmbr;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__pkgname,0};
  __Pyx_RefNannySetupContext("isPackageInstalled");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pkgname);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("isPackageInstalled", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "isPackageInstalled") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_pkgname = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_pkgname = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("isPackageInstalled", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve.isPackageInstalled");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_lst = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_txmbr = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":976
 * 
 * 
 *     def isPackageInstalled(self, pkgname):             # <<<<<<<<<<<<<<
 *         installed = False
 *         if self.rpmdb.contains(name=pkgname):
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve_isPackageInstalled, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyMethod_New(__pyx_t_2, 0, __pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s__isPackageInstalled, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 977:         installed = False
  /* "/home/david/coding/yum/yum/depsolve.pyx":977
 * 
 *     def isPackageInstalled(self, pkgname):
 *         installed = False             # <<<<<<<<<<<<<<
 *         if self.rpmdb.contains(name=pkgname):
 *             installed = True
 */
  __pyx_v_installed = 0;
 978:         if self.rpmdb.contains(name=pkgname):
  /* "/home/david/coding/yum/yum/depsolve.pyx":978
 *     def isPackageInstalled(self, pkgname):
 *         installed = False
 *         if self.rpmdb.contains(name=pkgname):             # <<<<<<<<<<<<<<
 *             installed = True
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__contains); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__name), __pyx_v_pkgname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = PyEval_CallObjectWithKeywords(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
 979:             installed = True
    /* "/home/david/coding/yum/yum/depsolve.pyx":979
 *         installed = False
 *         if self.rpmdb.contains(name=pkgname):
 *             installed = True             # <<<<<<<<<<<<<<
 * 
 *         lst = self.tsInfo.matchNaevr(name = pkgname)
 */
    __pyx_v_installed = 1;
    goto __pyx_L6;
  }
  __pyx_L6:;
 980: 
 981:         lst = self.tsInfo.matchNaevr(name = pkgname)
  /* "/home/david/coding/yum/yum/depsolve.pyx":981
 *             installed = True
 * 
 *         lst = self.tsInfo.matchNaevr(name = pkgname)             # <<<<<<<<<<<<<<
 *         for txmbr in lst:
 *             if txmbr.output_state in TS_INSTALL_STATES:
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__tsInfo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__matchNaevr); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__name), __pyx_v_pkgname) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = PyEval_CallObjectWithKeywords(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 981; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_lst);
  __pyx_v_lst = __pyx_t_2;
  __pyx_t_2 = 0;
 982:         for txmbr in lst:
  /* "/home/david/coding/yum/yum/depsolve.pyx":982
 * 
 *         lst = self.tsInfo.matchNaevr(name = pkgname)
 *         for txmbr in lst:             # <<<<<<<<<<<<<<
 *             if txmbr.output_state in TS_INSTALL_STATES:
 *                 return True
 */
  if (PyList_CheckExact(__pyx_v_lst) || PyTuple_CheckExact(__pyx_v_lst)) {
    __pyx_t_5 = 0; __pyx_t_2 = __pyx_v_lst; __Pyx_INCREF(__pyx_t_2);
  } else {
    __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_lst); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_2))) {
      if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_2))) {
      if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++;
    } else {
      __pyx_t_3 = PyIter_Next(__pyx_t_2);
      if (!__pyx_t_3) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_DECREF(__pyx_v_txmbr);
    __pyx_v_txmbr = __pyx_t_3;
    __pyx_t_3 = 0;
 983:             if txmbr.output_state in TS_INSTALL_STATES:
    /* "/home/david/coding/yum/yum/depsolve.pyx":983
 *         lst = self.tsInfo.matchNaevr(name = pkgname)
 *         for txmbr in lst:
 *             if txmbr.output_state in TS_INSTALL_STATES:             # <<<<<<<<<<<<<<
 *                 return True
 *         if installed and len(lst) > 0:
 */
    __pyx_t_3 = PyObject_GetAttr(__pyx_v_txmbr, __pyx_n_s__output_state); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__TS_INSTALL_STATES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = ((PySequence_Contains(__pyx_t_1, __pyx_t_3))); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_4) {
 984:                 return True
      /* "/home/david/coding/yum/yum/depsolve.pyx":984
 *         for txmbr in lst:
 *             if txmbr.output_state in TS_INSTALL_STATES:
 *                 return True             # <<<<<<<<<<<<<<
 *         if installed and len(lst) > 0:
 *             # if we get here, then it was installed, but it's in the tsInfo
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 984; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      goto __pyx_L0;
      goto __pyx_L9;
    }
    __pyx_L9:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 985:         if installed and len(lst) > 0:
  /* "/home/david/coding/yum/yum/depsolve.pyx":985
 *             if txmbr.output_state in TS_INSTALL_STATES:
 *                 return True
 *         if installed and len(lst) > 0:             # <<<<<<<<<<<<<<
 *             # if we get here, then it was installed, but it's in the tsInfo
 *             # for an erase or obsoleted --> not going to be installed at end
 */
  if (__pyx_v_installed) {
    __pyx_t_5 = PyObject_Length(__pyx_v_lst); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_4 = (__pyx_t_5 > 0);
    __pyx_t_6 = __pyx_t_4;
  } else {
    __pyx_t_6 = __pyx_v_installed;
  }
  if (__pyx_t_6) {
 986:             # if we get here, then it was installed, but it's in the tsInfo
 987:             # for an erase or obsoleted --> not going to be installed at end
 988:             return False
    /* "/home/david/coding/yum/yum/depsolve.pyx":988
 *             # if we get here, then it was installed, but it's in the tsInfo
 *             # for an erase or obsoleted --> not going to be installed at end
 *             return False             # <<<<<<<<<<<<<<
 *         return installed
 *     _isPackageInstalled = isPackageInstalled
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
    goto __pyx_L10;
  }
  __pyx_L10:;
 989:         return installed
  /* "/home/david/coding/yum/yum/depsolve.pyx":989
 *             # for an erase or obsoleted --> not going to be installed at end
 *             return False
 *         return installed             # <<<<<<<<<<<<<<
 *     _isPackageInstalled = isPackageInstalled
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_installed); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.Depsolve.isPackageInstalled");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_lst);
  __Pyx_DECREF(__pyx_v_txmbr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 990:     _isPackageInstalled = isPackageInstalled
  /* "/home/david/coding/yum/yum/depsolve.pyx":990
 *             return False
 *         return installed
 *     _isPackageInstalled = isPackageInstalled             # <<<<<<<<<<<<<<
 * 
 *     def _compare_providers(self, pkgs, reqpo):
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_t_5, __pyx_n_s__isPackageInstalled); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___isPackageInstalled, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 991: 
 992:     def _compare_providers(self, pkgs, reqpo):
/* "/home/david/coding/yum/yum/depsolve.pyx":992
 *     _isPackageInstalled = isPackageInstalled
 * 
 *     def _compare_providers(self, pkgs, reqpo):             # <<<<<<<<<<<<<<
 *         """take the list of pkgs and score them based on the requesting package
 *            return a dictionary of po=score"""
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__compare_providers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_3yum_8depsolve_8Depsolve__compare_providers[] = "take the list of pkgs and score them based on the requesting package\n           return a dictionary of po=score";
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Depsolve__compare_providers = {__Pyx_NAMESTR("_compare_providers"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Depsolve__compare_providers, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_3yum_8depsolve_8Depsolve__compare_providers)};
static PyObject *__pyx_pf_3yum_8depsolve_8Depsolve__compare_providers(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *__pyx_cur_scope;
  PyObject *__pyx_v_pkgs = 0;
  PyObject *__pyx_v_reqpo = 0;
  PyObject *__pyx_v__common_prefix_len;
  PyObject *__pyx_v__common_sourcerpm;
  PyObject *__pyx_v__compare_arch_distance;
  PyObject *__pyx_v_pkgresults;
  PyObject *__pyx_v_ipkgresults;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_rpmdbpkgs;
  PyObject *__pyx_v_newest;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_nextpo;
  PyObject *__pyx_v_obsoleted;
  PyObject *__pyx_v_obs;
  PyObject *__pyx_v_arches;
  PyObject *__pyx_v_thisarch;
  PyObject *__pyx_v_res;
  PyObject *__pyx_v_cpl;
  PyObject *__pyx_v_bestorder;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__pkgs,&__pyx_n_s__reqpo,0};
  __Pyx_RefNannySetupContext("_compare_providers");
  __pyx_cur_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *)__pyx_ptype_3yum_8depsolve___pyx_scope_struct__compare_providers->tp_new(__pyx_ptype_3yum_8depsolve___pyx_scope_struct__compare_providers, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __Pyx_GOTREF(__pyx_cur_scope);
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pkgs);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_compare_providers", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__reqpo);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_compare_providers", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_compare_providers") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_cur_scope->__pyx_v_self = values[0];
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_pkgs = values[1];
    __pyx_v_reqpo = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_cur_scope->__pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_self);
    __pyx_v_pkgs = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_reqpo = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_compare_providers", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Depsolve._compare_providers");
  __Pyx_XDECREF(__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_self = 0;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __Pyx_INCREF(__pyx_v_pkgs);
  __pyx_v__common_prefix_len = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v__common_sourcerpm = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v__compare_arch_distance = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkgresults = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_ipkgresults = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_pkg = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_rpmdbpkgs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_newest = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_po = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_nextpo = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_obsoleted = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_obs = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_arches = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_thisarch = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_res = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_cpl = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_bestorder = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":992
 *     _isPackageInstalled = isPackageInstalled
 * 
 *     def _compare_providers(self, pkgs, reqpo):             # <<<<<<<<<<<<<<
 *         """take the list of pkgs and score them based on the requesting package
 *            return a dictionary of po=score"""
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Depsolve__compare_providers, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s___compare_providers, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Depsolve, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;

/* "/home/david/coding/yum/yum/depsolve.pyx":992
 *     _isPackageInstalled = isPackageInstalled
 * 
 *     def _compare_providers(self, pkgs, reqpo):             # <<<<<<<<<<<<<<
 *         """take the list of pkgs and score them based on the requesting package
 *            return a dictionary of po=score"""
 */

struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers {
  PyObject_HEAD
  PyObject *__pyx_v__common_prefix_len;
  PyObject *__pyx_v__common_sourcerpm;
  PyObject *__pyx_v__compare_arch_distance;
  PyObject *__pyx_v_arches;
  PyObject *__pyx_v_bestorder;
  PyObject *__pyx_v_cpl;
  PyObject *__pyx_v_ipkgresults;
  PyObject *__pyx_v_newest;
  PyObject *__pyx_v_nextpo;
  PyObject *__pyx_v_obs;
  PyObject *__pyx_v_obsoleted;
  PyObject *__pyx_v_pkg;
  PyObject *__pyx_v_pkgresults;
  PyObject *__pyx_v_pkgs;
  PyObject *__pyx_v_po;
  PyObject *__pyx_v_reqpo;
  PyObject *__pyx_v_res;
  PyObject *__pyx_v_rpmdbpkgs;
  PyObject *__pyx_v_self;
  PyObject *__pyx_v_thisarch;
};
 993:         """take the list of pkgs and score them based on the requesting package
 994:            return a dictionary of po=score"""
 995:         self.verbose_logger.log(logginglevels.DEBUG_4,
  /* "/home/david/coding/yum/yum/depsolve.pyx":995
 *         """take the list of pkgs and score them based on the requesting package
 *            return a dictionary of po=score"""
 *         self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *               _("Running compare_providers() for %s") %(str(pkgs)))
 * 
 */
  __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 996:               _("Running compare_providers() for %s") %(str(pkgs)))
  /* "/home/david/coding/yum/yum/depsolve.pyx":996
 *            return a dictionary of po=score"""
 *         self.verbose_logger.log(logginglevels.DEBUG_4,
 *               _("Running compare_providers() for %s") %(str(pkgs)))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(((PyObject *)__pyx_kp_s_73));
  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_73));
  __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_73));
  __pyx_t_5 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_pkgs);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_pkgs);
  __Pyx_GIVEREF(__pyx_v_pkgs);
  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Remainder(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 996; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 997: 
 998: 
 999:         def _common_prefix_len(x, y, minlen=2):
/* "/home/david/coding/yum/yum/depsolve.pyx":999
 * 
 * 
 *         def _common_prefix_len(x, y, minlen=2):             # <<<<<<<<<<<<<<
 *             num = min(len(x), len(y))
 *             for off in range(num):
 */

static PyObject *__pyx_pf_3yum_8depsolve_18_compare_providers__common_prefix_len(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_18_compare_providers__common_prefix_len = {__Pyx_NAMESTR("_common_prefix_len"), (PyCFunction)__pyx_pf_3yum_8depsolve_18_compare_providers__common_prefix_len, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_18_compare_providers__common_prefix_len(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *__pyx_outer_scope;
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  PyObject *__pyx_v_minlen = 0;
  PyObject *__pyx_v_num;
  PyObject *__pyx_v_off;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,&__pyx_n_s__y,&__pyx_n_s__minlen,0};
  __Pyx_RefNannySetupContext("_common_prefix_len");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *)__pyx_self;
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)__pyx_int_2);
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_common_prefix_len", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      if (kw_args > 0) {
        PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__minlen);
        if (value) { values[2] = value; kw_args--; }
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_common_prefix_len") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
    __pyx_v_minlen = values[2];
  } else {
    __pyx_v_minlen = ((PyObject *)__pyx_int_2);
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3:
      __pyx_v_minlen = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2:
      __pyx_v_y = PyTuple_GET_ITEM(__pyx_args, 1);
      __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
      break;
      default: goto __pyx_L5_argtuple_error;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_common_prefix_len", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve._compare_providers._common_prefix_len");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_num = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_off = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":999
 * 
 * 
 *         def _common_prefix_len(x, y, minlen=2):             # <<<<<<<<<<<<<<
 *             num = min(len(x), len(y))
 *             for off in range(num):
 */
  __pyx_t_4 = __pyx_binding_PyCFunctionType_New(&__pyx_mdef_3yum_8depsolve_18_compare_providers__common_prefix_len, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_v__common_prefix_len);
  __pyx_v__common_prefix_len = __pyx_t_4;
  __pyx_t_4 = 0;
 1000:             num = min(len(x), len(y))
  /* "/home/david/coding/yum/yum/depsolve.pyx":1000
 * 
 *         def _common_prefix_len(x, y, minlen=2):
 *             num = min(len(x), len(y))             # <<<<<<<<<<<<<<
 *             for off in range(num):
 *                 if x[off] != y[off]:
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__min); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_v_x); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_Length(__pyx_v_y); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_v_num);
  __pyx_v_num = __pyx_t_4;
  __pyx_t_4 = 0;
 1001:             for off in range(num):
  /* "/home/david/coding/yum/yum/depsolve.pyx":1001
 *         def _common_prefix_len(x, y, minlen=2):
 *             num = min(len(x), len(y))
 *             for off in range(num):             # <<<<<<<<<<<<<<
 *                 if x[off] != y[off]:
 *                     return max(off, minlen)
 */
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_num);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_num);
  __Pyx_GIVEREF(__pyx_v_num);
  __pyx_t_5 = PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4);
  } else {
    __pyx_t_2 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_4))) {
      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_4)) break;
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++;
    } else {
      __pyx_t_5 = PyIter_Next(__pyx_t_4);
      if (!__pyx_t_5) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF(__pyx_v_off);
    __pyx_v_off = __pyx_t_5;
    __pyx_t_5 = 0;
 1002:                 if x[off] != y[off]:
    /* "/home/david/coding/yum/yum/depsolve.pyx":1002
 *             num = min(len(x), len(y))
 *             for off in range(num):
 *                 if x[off] != y[off]:             # <<<<<<<<<<<<<<
 *                     return max(off, minlen)
 *             return max(num, minlen)
 */
    __pyx_t_5 = PyObject_GetItem(__pyx_v_x, __pyx_v_off); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyObject_GetItem(__pyx_v_y, __pyx_v_off); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_NE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {
 1003:                     return max(off, minlen)
      /* "/home/david/coding/yum/yum/depsolve.pyx":1003
 *             for off in range(num):
 *                 if x[off] != y[off]:
 *                     return max(off, minlen)             # <<<<<<<<<<<<<<
 *             return max(num, minlen)
 * 
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__max); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_off);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_off);
      __Pyx_GIVEREF(__pyx_v_off);
      __Pyx_INCREF(__pyx_v_minlen);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_minlen);
      __Pyx_GIVEREF(__pyx_v_minlen);
      __pyx_t_5 = PyObject_Call(__pyx_t_3, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_r = __pyx_t_5;
      __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L0;
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1004:             return max(num, minlen)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1004
 *                 if x[off] != y[off]:
 *                     return max(off, minlen)
 *             return max(num, minlen)             # <<<<<<<<<<<<<<
 * 
 *         def _common_sourcerpm(x, y):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__max); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_num);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_num);
  __Pyx_GIVEREF(__pyx_v_num);
  __Pyx_INCREF(__pyx_v_minlen);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_minlen);
  __Pyx_GIVEREF(__pyx_v_minlen);
  __pyx_t_1 = PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1004; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("yum.depsolve._compare_providers._common_prefix_len");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_num);
  __Pyx_DECREF(__pyx_v_off);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1005: 
 1006:         def _common_sourcerpm(x, y):
/* "/home/david/coding/yum/yum/depsolve.pyx":1006
 *             return max(num, minlen)
 * 
 *         def _common_sourcerpm(x, y):             # <<<<<<<<<<<<<<
 *             if not hasattr(x, 'sourcerpm'):
 *                 return False
 */

static PyObject *__pyx_pf_3yum_8depsolve_18_compare_providers__common_sourcerpm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_18_compare_providers__common_sourcerpm = {__Pyx_NAMESTR("_common_sourcerpm"), (PyCFunction)__pyx_pf_3yum_8depsolve_18_compare_providers__common_sourcerpm, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_18_compare_providers__common_sourcerpm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *__pyx_outer_scope;
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,&__pyx_n_s__y,0};
  __Pyx_RefNannySetupContext("_common_sourcerpm");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *)__pyx_self;
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_common_sourcerpm", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_common_sourcerpm") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_y = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_common_sourcerpm", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve._compare_providers._common_sourcerpm");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":1006
 *             return max(num, minlen)
 * 
 *         def _common_sourcerpm(x, y):             # <<<<<<<<<<<<<<
 *             if not hasattr(x, 'sourcerpm'):
 *                 return False
 */
  __pyx_t_4 = __pyx_binding_PyCFunctionType_New(&__pyx_mdef_3yum_8depsolve_18_compare_providers__common_sourcerpm, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_v__common_sourcerpm);
  __pyx_v__common_sourcerpm = __pyx_t_4;
  __pyx_t_4 = 0;
 1007:             if not hasattr(x, 'sourcerpm'):
  /* "/home/david/coding/yum/yum/depsolve.pyx":1007
 * 
 *         def _common_sourcerpm(x, y):
 *             if not hasattr(x, 'sourcerpm'):             # <<<<<<<<<<<<<<
 *                 return False
 *             if not hasattr(y, 'sourcerpm'):
 */
  __pyx_t_1 = PyObject_HasAttr(__pyx_v_x, ((PyObject *)__pyx_n_s__sourcerpm)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = (!__pyx_t_1);
  if (__pyx_t_2) {
 1008:                 return False
    /* "/home/david/coding/yum/yum/depsolve.pyx":1008
 *         def _common_sourcerpm(x, y):
 *             if not hasattr(x, 'sourcerpm'):
 *                 return False             # <<<<<<<<<<<<<<
 *             if not hasattr(y, 'sourcerpm'):
 *                 return False
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L6;
  }
  __pyx_L6:;
 1009:             if not hasattr(y, 'sourcerpm'):
  /* "/home/david/coding/yum/yum/depsolve.pyx":1009
 *             if not hasattr(x, 'sourcerpm'):
 *                 return False
 *             if not hasattr(y, 'sourcerpm'):             # <<<<<<<<<<<<<<
 *                 return False
 *             return x.sourcerpm == y.sourcerpm
 */
  __pyx_t_2 = PyObject_HasAttr(__pyx_v_y, ((PyObject *)__pyx_n_s__sourcerpm)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = (!__pyx_t_2);
  if (__pyx_t_1) {
 1010:                 return False
    /* "/home/david/coding/yum/yum/depsolve.pyx":1010
 *                 return False
 *             if not hasattr(y, 'sourcerpm'):
 *                 return False             # <<<<<<<<<<<<<<
 *             return x.sourcerpm == y.sourcerpm
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
    goto __pyx_L7;
  }
  __pyx_L7:;
 1011:             return x.sourcerpm == y.sourcerpm
  /* "/home/david/coding/yum/yum/depsolve.pyx":1011
 *             if not hasattr(y, 'sourcerpm'):
 *                 return False
 *             return x.sourcerpm == y.sourcerpm             # <<<<<<<<<<<<<<
 * 
 *         def _compare_arch_distance(x, y, req_compare_arch):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__sourcerpm); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_GetAttr(__pyx_v_y, __pyx_n_s__sourcerpm); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("yum.depsolve._compare_providers._common_sourcerpm");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1012: 
 1013:         def _compare_arch_distance(x, y, req_compare_arch):
/* "/home/david/coding/yum/yum/depsolve.pyx":1013
 *             return x.sourcerpm == y.sourcerpm
 * 
 *         def _compare_arch_distance(x, y, req_compare_arch):             # <<<<<<<<<<<<<<
 *             # take X and Y package objects
 *             # determine which has a closer archdistance to compare_arch
 */

static PyObject *__pyx_pf_3yum_8depsolve_18_compare_providers__compare_arch_distance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_18_compare_providers__compare_arch_distance = {__Pyx_NAMESTR("_compare_arch_distance"), (PyCFunction)__pyx_pf_3yum_8depsolve_18_compare_providers__compare_arch_distance, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_18_compare_providers__compare_arch_distance(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *__pyx_outer_scope;
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_y = 0;
  PyObject *__pyx_v_req_compare_arch = 0;
  PyObject *__pyx_v_x_dist;
  PyObject *__pyx_v_y_dist;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__x,&__pyx_n_s__y,&__pyx_n_s__req_compare_arch,0};
  __Pyx_RefNannySetupContext("_compare_arch_distance");
  __pyx_outer_scope = (struct __pyx_obj_3yum_8depsolve___pyx_scope_struct__compare_providers *)__pyx_self;
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__x);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_compare_arch_distance", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__req_compare_arch);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("_compare_arch_distance", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_compare_arch_distance") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_x = values[0];
    __pyx_v_y = values[1];
    __pyx_v_req_compare_arch = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_x = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_y = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_req_compare_arch = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_compare_arch_distance", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve._compare_providers._compare_arch_distance");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_x_dist = Py_None; __Pyx_INCREF(Py_None);
  __pyx_v_y_dist = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":1013
 *             return x.sourcerpm == y.sourcerpm
 * 
 *         def _compare_arch_distance(x, y, req_compare_arch):             # <<<<<<<<<<<<<<
 *             # take X and Y package objects
 *             # determine which has a closer archdistance to compare_arch
 */
  __pyx_t_4 = __pyx_binding_PyCFunctionType_New(&__pyx_mdef_3yum_8depsolve_18_compare_providers__compare_arch_distance, ((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_v__compare_arch_distance);
  __pyx_v__compare_arch_distance = __pyx_t_4;
  __pyx_t_4 = 0;
 1014:             # take X and Y package objects
 1015:             # determine which has a closer archdistance to compare_arch
 1016:             # if they are equal to compare_arch, compare which is closer to the
 1017:             # running arch
 1018:             # return the package which is closer or None for equal, or equally useless
 1019: 
 1020:             x_dist = archDifference(req_compare_arch, x.arch)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1020
 *             # return the package which is closer or None for equal, or equally useless
 * 
 *             x_dist = archDifference(req_compare_arch, x.arch)             # <<<<<<<<<<<<<<
 *             if isMultiLibArch(): # only go to the next one if we're multilib -
 *                 if x_dist == 0: # can't really use best's arch anyway...
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__archDifference); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_GetAttr(__pyx_v_x, __pyx_n_s__arch); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_req_compare_arch);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_req_compare_arch);
  __Pyx_GIVEREF(__pyx_v_req_compare_arch);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_Call(__pyx_t_1, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_v_x_dist);
  __pyx_v_x_dist = __pyx_t_2;
  __pyx_t_2 = 0;
 1021:             if isMultiLibArch(): # only go to the next one if we're multilib -
  /* "/home/david/coding/yum/yum/depsolve.pyx":1021
 * 
 *             x_dist = archDifference(req_compare_arch, x.arch)
 *             if isMultiLibArch(): # only go to the next one if we're multilib -             # <<<<<<<<<<<<<<
 *                 if x_dist == 0: # can't really use best's arch anyway...
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 */
  __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__isMultiLibArch); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
 1022:                 if x_dist == 0: # can't really use best's arch anyway...
    /* "/home/david/coding/yum/yum/depsolve.pyx":1022
 *             x_dist = archDifference(req_compare_arch, x.arch)
 *             if isMultiLibArch(): # only go to the next one if we're multilib -
 *                 if x_dist == 0: # can't really use best's arch anyway...             # <<<<<<<<<<<<<<
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 *                         _("better arch in po %s") %(y))
 */
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_x_dist, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
 1023:                     self.verbose_logger.log(logginglevels.DEBUG_4,
      /* "/home/david/coding/yum/yum/depsolve.pyx":1023
 *             if isMultiLibArch(): # only go to the next one if we're multilib -
 *                 if x_dist == 0: # can't really use best's arch anyway...
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *                         _("better arch in po %s") %(y))
 *                     return y # just try the next one - can't be much worse
 */
      __pyx_t_3 = PyObject_GetAttr(__pyx_outer_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_3, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 1024:                         _("better arch in po %s") %(y))
      /* "/home/david/coding/yum/yum/depsolve.pyx":1024
 *                 if x_dist == 0: # can't really use best's arch anyway...
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 *                         _("better arch in po %s") %(y))             # <<<<<<<<<<<<<<
 *                     return y # just try the next one - can't be much worse
 * 
 */
      __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(((PyObject *)__pyx_kp_s_72));
      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_s_72));
      __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_72));
      __pyx_t_6 = PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Remainder(__pyx_t_6, __pyx_v_y); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_1 = 0;
      __pyx_t_5 = 0;
      __pyx_t_5 = PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1025:                     return y # just try the next one - can't be much worse
      /* "/home/david/coding/yum/yum/depsolve.pyx":1025
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 *                         _("better arch in po %s") %(y))
 *                     return y # just try the next one - can't be much worse             # <<<<<<<<<<<<<<
 * 
 *             y_dist = archDifference(req_compare_arch, y.arch)
 */
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_y);
      __pyx_r = __pyx_v_y;
      goto __pyx_L0;
      goto __pyx_L7;
    }
    __pyx_L7:;
    goto __pyx_L6;
  }
  __pyx_L6:;
 1026: 
 1027:             y_dist = archDifference(req_compare_arch, y.arch)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1027
 *                     return y # just try the next one - can't be much worse
 * 
 *             y_dist = archDifference(req_compare_arch, y.arch)             # <<<<<<<<<<<<<<
 *             if y_dist > 0 and x_dist > y_dist:
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,
 */
  __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__archDifference); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_GetAttr(__pyx_v_y, __pyx_n_s__arch); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_req_compare_arch);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_req_compare_arch);
  __Pyx_GIVEREF(__pyx_v_req_compare_arch);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_y_dist);
  __pyx_v_y_dist = __pyx_t_6;
  __pyx_t_6 = 0;
 1028:             if y_dist > 0 and x_dist > y_dist:
  /* "/home/david/coding/yum/yum/depsolve.pyx":1028
 * 
 *             y_dist = archDifference(req_compare_arch, y.arch)
 *             if y_dist > 0 and x_dist > y_dist:             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,
 *                     _("better arch in po %s") %(y))
 */
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_y_dist, __pyx_int_0, Py_GT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_4) {
    __pyx_t_6 = PyObject_RichCompare(__pyx_v_x_dist, __pyx_v_y_dist, Py_GT); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __pyx_t_7;
  } else {
    __pyx_t_8 = __pyx_t_4;
  }
  if (__pyx_t_8) {
 1029:                 self.verbose_logger.log(logginglevels.DEBUG_4,
    /* "/home/david/coding/yum/yum/depsolve.pyx":1029
 *             y_dist = archDifference(req_compare_arch, y.arch)
 *             if y_dist > 0 and x_dist > y_dist:
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *                     _("better arch in po %s") %(y))
 * 
 */
    __pyx_t_6 = PyObject_GetAttr(__pyx_outer_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyObject_GetAttr(__pyx_t_6, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 1030:                     _("better arch in po %s") %(y))
    /* "/home/david/coding/yum/yum/depsolve.pyx":1030
 *             if y_dist > 0 and x_dist > y_dist:
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,
 *                     _("better arch in po %s") %(y))             # <<<<<<<<<<<<<<
 * 
 *                 return y
 */
    __pyx_t_6 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)__pyx_kp_s_72));
    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_s_72));
    __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_72));
    __pyx_t_3 = PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Remainder(__pyx_t_3, __pyx_v_y); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1031: 
 1032:                 return y
    /* "/home/david/coding/yum/yum/depsolve.pyx":1032
 *                     _("better arch in po %s") %(y))
 * 
 *                 return y             # <<<<<<<<<<<<<<
 *             if y_dist == x_dist:
 *                 return None
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_y);
    __pyx_r = __pyx_v_y;
    goto __pyx_L0;
    goto __pyx_L8;
  }
  __pyx_L8:;
 1033:             if y_dist == x_dist:
  /* "/home/david/coding/yum/yum/depsolve.pyx":1033
 * 
 *                 return y
 *             if y_dist == x_dist:             # <<<<<<<<<<<<<<
 *                 return None
 *             return x
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_y_dist, __pyx_v_x_dist, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {
 1034:                 return None
    /* "/home/david/coding/yum/yum/depsolve.pyx":1034
 *                 return y
 *             if y_dist == x_dist:
 *                 return None             # <<<<<<<<<<<<<<
 *             return x
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_None);
    __pyx_r = Py_None;
    goto __pyx_L0;
    goto __pyx_L9;
  }
  __pyx_L9:;
 1035:             return x
  /* "/home/david/coding/yum/yum/depsolve.pyx":1035
 *             if y_dist == x_dist:
 *                 return None
 *             return x             # <<<<<<<<<<<<<<
 * 
 *         pkgresults = {}
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_x);
  __pyx_r = __pyx_v_x;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("yum.depsolve._compare_providers._compare_arch_distance");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_x_dist);
  __Pyx_DECREF(__pyx_v_y_dist);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1036: 
 1037:         pkgresults = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":1037
 *             return x
 * 
 *         pkgresults = {}             # <<<<<<<<<<<<<<
 *         ipkgresults = {}
 * 
 */
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1037; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_DECREF(__pyx_v_pkgresults);
  __pyx_v_pkgresults = ((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;
 1038:         ipkgresults = {}
  /* "/home/david/coding/yum/yum/depsolve.pyx":1038
 * 
 *         pkgresults = {}
 *         ipkgresults = {}             # <<<<<<<<<<<<<<
 * 
 *         for pkg in pkgs:
 */
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_DECREF(__pyx_v_ipkgresults);
  __pyx_v_ipkgresults = ((PyObject *)__pyx_t_4);
  __pyx_t_4 = 0;
 1039: 
 1040:         for pkg in pkgs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":1040
 *         ipkgresults = {}
 * 
 *         for pkg in pkgs:             # <<<<<<<<<<<<<<
 *             pkgresults[pkg] = 0
 *             if self.rpmdb.contains(pkg.name):
 */
  if (PyList_CheckExact(__pyx_v_pkgs) || PyTuple_CheckExact(__pyx_v_pkgs)) {
    __pyx_t_6 = 0; __pyx_t_4 = __pyx_v_pkgs; __Pyx_INCREF(__pyx_t_4);
  } else {
    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_pkgs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_4))) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
      if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++;
    } else {
      __pyx_t_1 = PyIter_Next(__pyx_t_4);
      if (!__pyx_t_1) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1040; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_DECREF(__pyx_v_pkg);
    __pyx_v_pkg = __pyx_t_1;
    __pyx_t_1 = 0;
 1041:             pkgresults[pkg] = 0
    /* "/home/david/coding/yum/yum/depsolve.pyx":1041
 * 
 *         for pkg in pkgs:
 *             pkgresults[pkg] = 0             # <<<<<<<<<<<<<<
 *             if self.rpmdb.contains(pkg.name):
 *                 #  We only want to count things as "installed" if they are
 */
    if (PyObject_SetItem(__pyx_v_pkgresults, __pyx_v_pkg, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 1042:             if self.rpmdb.contains(pkg.name):
    /* "/home/david/coding/yum/yum/depsolve.pyx":1042
 *         for pkg in pkgs:
 *             pkgresults[pkg] = 0
 *             if self.rpmdb.contains(pkg.name):             # <<<<<<<<<<<<<<
 *                 #  We only want to count things as "installed" if they are
 *                 # older than what we are comparing, because this then an update
 */
    __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__contains); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_7) {
 1043:                 #  We only want to count things as "installed" if they are
 1044:                 # older than what we are comparing, because this then an update
 1045:                 # so we give preference. If they are newer then obsoletes/etc.
 1046:                 # could play a part ... this probably needs a better fix.
 1047:                 rpmdbpkgs = self.rpmdb.returnPackages(patterns=[pkg.name])
      /* "/home/david/coding/yum/yum/depsolve.pyx":1047
 *                 # so we give preference. If they are newer then obsoletes/etc.
 *                 # could play a part ... this probably needs a better fix.
 *                 rpmdbpkgs = self.rpmdb.returnPackages(patterns=[pkg.name])             # <<<<<<<<<<<<<<
 *                 newest = sorted(rpmdbpkgs)[-1]
 *                 if newest.verLT(pkg):
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__rpmdb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_GetAttr(__pyx_t_1, __pyx_n_s__returnPackages); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_1));
      __pyx_t_2 = PyObject_GetAttr(__pyx_v_pkg, __pyx_n_s__name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
      PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_2);
      __pyx_t_2 = 0;
      if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__patterns), ((PyObject *)__pyx_t_5)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
      __pyx_t_5 = PyEval_CallObjectWithKeywords(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_rpmdbpkgs);
      __pyx_v_rpmdbpkgs = __pyx_t_5;
      __pyx_t_5 = 0;
 1048:                 newest = sorted(rpmdbpkgs)[-1]
      /* "/home/david/coding/yum/yum/depsolve.pyx":1048
 *                 # could play a part ... this probably needs a better fix.
 *                 rpmdbpkgs = self.rpmdb.returnPackages(patterns=[pkg.name])
 *                 newest = sorted(rpmdbpkgs)[-1]             # <<<<<<<<<<<<<<
 *                 if newest.verLT(pkg):
 *                     ipkgresults[pkg] = 0
 */
      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_v_rpmdbpkgs);
      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_rpmdbpkgs);
      __Pyx_GIVEREF(__pyx_v_rpmdbpkgs);
      __pyx_t_1 = PyObject_Call(__pyx_builtin_sorted, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, -1, sizeof(long), PyInt_FromLong); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_v_newest);
      __pyx_v_newest = __pyx_t_5;
      __pyx_t_5 = 0;
 1049:                 if newest.verLT(pkg):
      /* "/home/david/coding/yum/yum/depsolve.pyx":1049
 *                 rpmdbpkgs = self.rpmdb.returnPackages(patterns=[pkg.name])
 *                 newest = sorted(rpmdbpkgs)[-1]
 *                 if newest.verLT(pkg):             # <<<<<<<<<<<<<<
 *                     ipkgresults[pkg] = 0
 * 
 */
      __pyx_t_5 = PyObject_GetAttr(__pyx_v_newest, __pyx_n_s__verLT); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_pkg);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pkg);
      __Pyx_GIVEREF(__pyx_v_pkg);
      __pyx_t_3 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_7) {
 1050:                     ipkgresults[pkg] = 0
        /* "/home/david/coding/yum/yum/depsolve.pyx":1050
 *                 newest = sorted(rpmdbpkgs)[-1]
 *                 if newest.verLT(pkg):
 *                     ipkgresults[pkg] = 0             # <<<<<<<<<<<<<<
 * 
 *         #  This is probably only for "renames". What happens is that pkgA-1 gets
 */
        if (PyObject_SetItem(__pyx_v_ipkgresults, __pyx_v_pkg, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        goto __pyx_L9;
      }
      __pyx_L9:;
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1051: 
 1052:         #  This is probably only for "renames". What happens is that pkgA-1 gets
 1053:         # obsoleted by pkgB but pkgB requires pkgA-2, now _if_ the pkgA txmbr
 1054:         # gets processed before pkgB then we'll process the "checkRemove" of
 1055:         # pkgA ... so any deps. on pkgA-1 will look for a new provider, one of
 1056:         # which is pkgA-2 in that case we want to choose that pkg over any
 1057:         # others. This works for multiple cases too, but who'd do that right?:)
 1058:         #  FIXME: A good long term. fix here is to just not get into this
 1059:         # problem, but that's too much for .21. This is much safer.
 1060:         if ipkgresults:
  /* "/home/david/coding/yum/yum/depsolve.pyx":1060
 *         #  FIXME: A good long term. fix here is to just not get into this
 *         # problem, but that's too much for .21. This is much safer.
 *         if ipkgresults:             # <<<<<<<<<<<<<<
 *             pkgresults = ipkgresults
 *             pkgs = ipkgresults.keys()
 */
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_ipkgresults); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_7) {
 1061:             pkgresults = ipkgresults
    /* "/home/david/coding/yum/yum/depsolve.pyx":1061
 *         # problem, but that's too much for .21. This is much safer.
 *         if ipkgresults:
 *             pkgresults = ipkgresults             # <<<<<<<<<<<<<<
 *             pkgs = ipkgresults.keys()
 * 
 */
    __Pyx_INCREF(__pyx_v_ipkgresults);
    __Pyx_DECREF(__pyx_v_pkgresults);
    __pyx_v_pkgresults = __pyx_v_ipkgresults;
 1062:             pkgs = ipkgresults.keys()
    /* "/home/david/coding/yum/yum/depsolve.pyx":1062
 *         if ipkgresults:
 *             pkgresults = ipkgresults
 *             pkgs = ipkgresults.keys()             # <<<<<<<<<<<<<<
 * 
 *         # go through each pkg and compare to others
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_ipkgresults, __pyx_n_s__keys); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_v_pkgs);
    __pyx_v_pkgs = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L10;
  }
  __pyx_L10:;
 1063: 
 1064:         # go through each pkg and compare to others
 1065:         # if it is same skip it
 1066:         # if the pkg is obsoleted by any other of the packages
 1067:         # then add  -1024 to its score
 1068:         # don't need to look for mutual obsoletes b/c each package
 1069:         # is evaluated against all the others, so mutually obsoleting
 1070:         # packages will have their scores diminished equally
 1071: 
 1072:         # compare the arch vs each other pkg
 1073:         #   give each time it returns with a better arch a +5
 1074: 
 1075:         # look for common source vs the reqpo - give a +10 if it has it
 1076: 
 1077:         # look for common_prefix_len - add the length*2 to the score
 1078: 
 1079:         # add the negative of the length of the name to the score
 1080: 
 1081:         for po in pkgs:
  /* "/home/david/coding/yum/yum/depsolve.pyx":1081
 *         # add the negative of the length of the name to the score
 * 
 *         for po in pkgs:             # <<<<<<<<<<<<<<
 *             for nextpo in pkgs:
 *                 if po == nextpo:
 */
  if (PyList_CheckExact(__pyx_v_pkgs) || PyTuple_CheckExact(__pyx_v_pkgs)) {
    __pyx_t_6 = 0; __pyx_t_3 = __pyx_v_pkgs; __Pyx_INCREF(__pyx_t_3);
  } else {
    __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_pkgs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
  }
  for (;;) {
    if (likely(PyList_CheckExact(__pyx_t_3))) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++;
    } else if (likely(PyTuple_CheckExact(__pyx_t_3))) {
      if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++;
    } else {
      __pyx_t_4 = PyIter_Next(__pyx_t_3);
      if (!__pyx_t_4) {
        if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_DECREF(__pyx_v_po);
    __pyx_v_po = __pyx_t_4;
    __pyx_t_4 = 0;
 1082:             for nextpo in pkgs:
    /* "/home/david/coding/yum/yum/depsolve.pyx":1082
 * 
 *         for po in pkgs:
 *             for nextpo in pkgs:             # <<<<<<<<<<<<<<
 *                 if po == nextpo:
 *                     continue
 */
    if (PyList_CheckExact(__pyx_v_pkgs) || PyTuple_CheckExact(__pyx_v_pkgs)) {
      __pyx_t_8 = 0; __pyx_t_4 = __pyx_v_pkgs; __Pyx_INCREF(__pyx_t_4);
    } else {
      __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_pkgs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
    }
    for (;;) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
      } else if (likely(PyTuple_CheckExact(__pyx_t_4))) {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++;
      } else {
        __pyx_t_1 = PyIter_Next(__pyx_t_4);
        if (!__pyx_t_1) {
          if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF(__pyx_v_nextpo);
      __pyx_v_nextpo = __pyx_t_1;
      __pyx_t_1 = 0;
 1083:                 if po == nextpo:
      /* "/home/david/coding/yum/yum/depsolve.pyx":1083
 *         for po in pkgs:
 *             for nextpo in pkgs:
 *                 if po == nextpo:             # <<<<<<<<<<<<<<
 *                     continue
 *                 obsoleted = False
 */
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_po, __pyx_v_nextpo, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_7) {
 1084:                     continue
        /* "/home/david/coding/yum/yum/depsolve.pyx":1084
 *             for nextpo in pkgs:
 *                 if po == nextpo:
 *                     continue             # <<<<<<<<<<<<<<
 *                 obsoleted = False
 *                 for obs in nextpo.obsoletes:
 */
        goto __pyx_L13_continue;
        goto __pyx_L15;
      }
      __pyx_L15:;
 1085:                 obsoleted = False
      /* "/home/david/coding/yum/yum/depsolve.pyx":1085
 *                 if po == nextpo:
 *                     continue
 *                 obsoleted = False             # <<<<<<<<<<<<<<
 *                 for obs in nextpo.obsoletes:
 *                     if po.inPrcoRange('provides', obs):
 */
      __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1085; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_v_obsoleted);
      __pyx_v_obsoleted = __pyx_t_1;
      __pyx_t_1 = 0;
 1086:                 for obs in nextpo.obsoletes:
      /* "/home/david/coding/yum/yum/depsolve.pyx":1086
 *                     continue
 *                 obsoleted = False
 *                 for obs in nextpo.obsoletes:             # <<<<<<<<<<<<<<
 *                     if po.inPrcoRange('provides', obs):
 *                         obsoleted = True
 */
      __pyx_t_1 = PyObject_GetAttr(__pyx_v_nextpo, __pyx_n_s__obsoletes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_9 = 0; __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5);
      } else {
        __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_5))) {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++;
        } else {
          __pyx_t_1 = PyIter_Next(__pyx_t_5);
          if (!__pyx_t_1) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF(__pyx_v_obs);
        __pyx_v_obs = __pyx_t_1;
        __pyx_t_1 = 0;
 1087:                     if po.inPrcoRange('provides', obs):
        /* "/home/david/coding/yum/yum/depsolve.pyx":1087
 *                 obsoleted = False
 *                 for obs in nextpo.obsoletes:
 *                     if po.inPrcoRange('provides', obs):             # <<<<<<<<<<<<<<
 *                         obsoleted = True
 * 
 */
        __pyx_t_1 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__inPrcoRange); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(((PyObject *)__pyx_n_s__provides));
        PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_n_s__provides));
        __Pyx_GIVEREF(((PyObject *)__pyx_n_s__provides));
        __Pyx_INCREF(__pyx_v_obs);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_obs);
        __Pyx_GIVEREF(__pyx_v_obs);
        __pyx_t_10 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__pyx_t_7) {
 1088:                         obsoleted = True
          /* "/home/david/coding/yum/yum/depsolve.pyx":1088
 *                 for obs in nextpo.obsoletes:
 *                     if po.inPrcoRange('provides', obs):
 *                         obsoleted = True             # <<<<<<<<<<<<<<
 * 
 *                         self.verbose_logger.log(logginglevels.DEBUG_4,
 */
          __pyx_t_10 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_v_obsoleted);
          __pyx_v_obsoleted = __pyx_t_10;
          __pyx_t_10 = 0;
 1089: 
 1090:                         self.verbose_logger.log(logginglevels.DEBUG_4,
          /* "/home/david/coding/yum/yum/depsolve.pyx":1090
 *                         obsoleted = True
 * 
 *                         self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *                             _("%s obsoletes %s") % (po, nextpo))
 * 
 */
          __pyx_t_10 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_2 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_1 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 1091:                             _("%s obsoletes %s") % (po, nextpo))
          /* "/home/david/coding/yum/yum/depsolve.pyx":1091
 * 
 *                         self.verbose_logger.log(logginglevels.DEBUG_4,
 *                             _("%s obsoletes %s") % (po, nextpo))             # <<<<<<<<<<<<<<
 * 
 *                     if obsoleted:
 */
          __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_INCREF(((PyObject *)__pyx_kp_s_74));
          PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_s_74));
          __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_74));
          __pyx_t_12 = PyObject_Call(__pyx_t_10, __pyx_t_11, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_INCREF(__pyx_v_po);
          PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_po);
          __Pyx_GIVEREF(__pyx_v_po);
          __Pyx_INCREF(__pyx_v_nextpo);
          PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_nextpo);
          __Pyx_GIVEREF(__pyx_v_nextpo);
          __pyx_t_10 = PyNumber_Remainder(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_11);
          PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_10);
          __Pyx_GIVEREF(__pyx_t_10);
          __pyx_t_1 = 0;
          __pyx_t_10 = 0;
          __pyx_t_10 = PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L18;
        }
        __pyx_L18:;
 1092: 
 1093:                     if obsoleted:
        /* "/home/david/coding/yum/yum/depsolve.pyx":1093
 *                             _("%s obsoletes %s") % (po, nextpo))
 * 
 *                     if obsoleted:             # <<<<<<<<<<<<<<
 *                         pkgresults[po] -= 1024
 *                         break
 */
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_obsoleted); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        if (__pyx_t_7) {
 1094:                         pkgresults[po] -= 1024
          /* "/home/david/coding/yum/yum/depsolve.pyx":1094
 * 
 *                     if obsoleted:
 *                         pkgresults[po] -= 1024             # <<<<<<<<<<<<<<
 *                         break
 * 
 */
          __pyx_t_10 = PyObject_GetItem(__pyx_v_pkgresults, __pyx_v_po); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = PyNumber_InPlaceSubtract(__pyx_t_10, __pyx_int_1024); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (PyObject_SetItem(__pyx_v_pkgresults, __pyx_v_po, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 1095:                         break
          /* "/home/david/coding/yum/yum/depsolve.pyx":1095
 *                     if obsoleted:
 *                         pkgresults[po] -= 1024
 *                         break             # <<<<<<<<<<<<<<
 * 
 *                 if reqpo:
 */
          goto __pyx_L17_break;
          goto __pyx_L19;
        }
        __pyx_L19:;
      }
      __pyx_L17_break:;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1096: 
 1097:                 if reqpo:
      /* "/home/david/coding/yum/yum/depsolve.pyx":1097
 *                         break
 * 
 *                 if reqpo:             # <<<<<<<<<<<<<<
 *                     arches = (reqpo.arch, getBestArch())
 *                 else:
 */
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_reqpo); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      if (__pyx_t_7) {
 1098:                     arches = (reqpo.arch, getBestArch())
        /* "/home/david/coding/yum/yum/depsolve.pyx":1098
 * 
 *                 if reqpo:
 *                     arches = (reqpo.arch, getBestArch())             # <<<<<<<<<<<<<<
 *                 else:
 *                     arches = (getBestArch(),)
 */
        __pyx_t_5 = PyObject_GetAttr(__pyx_v_reqpo, __pyx_n_s__arch); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__getBestArch); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_10);
        __Pyx_GIVEREF(__pyx_t_10);
        __pyx_t_5 = 0;
        __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_v_arches);
        __pyx_v_arches = __pyx_t_11;
        __pyx_t_11 = 0;
        goto __pyx_L20;
      }
      /*else*/ {
 1099:                 else:
 1100:                     arches = (getBestArch(),)
        /* "/home/david/coding/yum/yum/depsolve.pyx":1100
 *                     arches = (reqpo.arch, getBestArch())
 *                 else:
 *                     arches = (getBestArch(),)             # <<<<<<<<<<<<<<
 * 
 *                 for thisarch in arches:
 */
        __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__getBestArch); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10);
        __Pyx_GIVEREF(__pyx_t_10);
        __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_v_arches);
        __pyx_v_arches = __pyx_t_11;
        __pyx_t_11 = 0;
      }
      __pyx_L20:;
 1101: 
 1102:                 for thisarch in arches:
      /* "/home/david/coding/yum/yum/depsolve.pyx":1102
 *                     arches = (getBestArch(),)
 * 
 *                 for thisarch in arches:             # <<<<<<<<<<<<<<
 *                     res = _compare_arch_distance(po, nextpo, thisarch)
 *                     if not res:
 */
      if (PyList_CheckExact(__pyx_v_arches) || PyTuple_CheckExact(__pyx_v_arches)) {
        __pyx_t_9 = 0; __pyx_t_11 = __pyx_v_arches; __Pyx_INCREF(__pyx_t_11);
      } else {
        __pyx_t_9 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_v_arches); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
      }
      for (;;) {
        if (likely(PyList_CheckExact(__pyx_t_11))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_11)) break;
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++;
        } else if (likely(PyTuple_CheckExact(__pyx_t_11))) {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_10); __pyx_t_9++;
        } else {
          __pyx_t_10 = PyIter_Next(__pyx_t_11);
          if (!__pyx_t_10) {
            if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
            break;
          }
          __Pyx_GOTREF(__pyx_t_10);
        }
        __Pyx_DECREF(__pyx_v_thisarch);
        __pyx_v_thisarch = __pyx_t_10;
        __pyx_t_10 = 0;
 1103:                     res = _compare_arch_distance(po, nextpo, thisarch)
        /* "/home/david/coding/yum/yum/depsolve.pyx":1103
 * 
 *                 for thisarch in arches:
 *                     res = _compare_arch_distance(po, nextpo, thisarch)             # <<<<<<<<<<<<<<
 *                     if not res:
 *                         continue
 */
        __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_nextpo);
        PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_nextpo);
        __Pyx_GIVEREF(__pyx_v_nextpo);
        __Pyx_INCREF(__pyx_v_thisarch);
        PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_thisarch);
        __Pyx_GIVEREF(__pyx_v_thisarch);
        __pyx_t_5 = PyObject_Call(__pyx_v__compare_arch_distance, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_v_res);
        __pyx_v_res = __pyx_t_5;
        __pyx_t_5 = 0;
 1104:                     if not res:
        /* "/home/david/coding/yum/yum/depsolve.pyx":1104
 *                 for thisarch in arches:
 *                     res = _compare_arch_distance(po, nextpo, thisarch)
 *                     if not res:             # <<<<<<<<<<<<<<
 *                         continue
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 */
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_res); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __pyx_t_13 = (!__pyx_t_7);
        if (__pyx_t_13) {
 1105:                         continue
          /* "/home/david/coding/yum/yum/depsolve.pyx":1105
 *                     res = _compare_arch_distance(po, nextpo, thisarch)
 *                     if not res:
 *                         continue             # <<<<<<<<<<<<<<
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 *                        _('archdist compared %s to %s on %s\n  Winner: %s' % (po, nextpo, thisarch, res)))
 */
          goto __pyx_L21_continue;
          goto __pyx_L23;
        }
        __pyx_L23:;
 1106:                     self.verbose_logger.log(logginglevels.DEBUG_4,
        /* "/home/david/coding/yum/yum/depsolve.pyx":1106
 *                     if not res:
 *                         continue
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *                        _('archdist compared %s to %s on %s\n  Winner: %s' % (po, nextpo, thisarch, res)))
 * 
 */
        __pyx_t_5 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_10 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__log); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_2 = PyObject_GetAttr(__pyx_t_5, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1107:                        _('archdist compared %s to %s on %s\n  Winner: %s' % (po, nextpo, thisarch, res)))
        /* "/home/david/coding/yum/yum/depsolve.pyx":1107
 *                         continue
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 *                        _('archdist compared %s to %s on %s\n  Winner: %s' % (po, nextpo, thisarch, res)))             # <<<<<<<<<<<<<<
 * 
 *                     if res == po:
 */
        __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_nextpo);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_nextpo);
        __Pyx_GIVEREF(__pyx_v_nextpo);
        __Pyx_INCREF(__pyx_v_thisarch);
        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_thisarch);
        __Pyx_GIVEREF(__pyx_v_thisarch);
        __Pyx_INCREF(__pyx_v_res);
        PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_res);
        __Pyx_GIVEREF(__pyx_v_res);
        __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_75), __pyx_t_1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_12));
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_12));
        __Pyx_GIVEREF(((PyObject *)__pyx_t_12));
        __pyx_t_12 = 0;
        __pyx_t_12 = PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_12);
        __Pyx_GIVEREF(__pyx_t_12);
        __pyx_t_2 = 0;
        __pyx_t_12 = 0;
        __pyx_t_12 = PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 1108: 
 1109:                     if res == po:
        /* "/home/david/coding/yum/yum/depsolve.pyx":1109
 *                        _('archdist compared %s to %s on %s\n  Winner: %s' % (po, nextpo, thisarch, res)))
 * 
 *                     if res == po:             # <<<<<<<<<<<<<<
 *                         pkgresults[po] += 5
 * 
 */
        __pyx_t_12 = PyObject_RichCompare(__pyx_v_res, __pyx_v_po, Py_EQ); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__pyx_t_13) {
 1110:                         pkgresults[po] += 5
          /* "/home/david/coding/yum/yum/depsolve.pyx":1110
 * 
 *                     if res == po:
 *                         pkgresults[po] += 5             # <<<<<<<<<<<<<<
 * 
 *             if _common_sourcerpm(po, reqpo):
 */
          __pyx_t_12 = PyObject_GetItem(__pyx_v_pkgresults, __pyx_v_po); if (!__pyx_t_12) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_int_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (PyObject_SetItem(__pyx_v_pkgresults, __pyx_v_po, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          goto __pyx_L24;
        }
        __pyx_L24:;
        __pyx_L21_continue:;
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_L13_continue:;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1111: 
 1112:             if _common_sourcerpm(po, reqpo):
    /* "/home/david/coding/yum/yum/depsolve.pyx":1112
 *                         pkgresults[po] += 5
 * 
 *             if _common_sourcerpm(po, reqpo):             # <<<<<<<<<<<<<<
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,
 *                     _('common sourcerpm %s and %s' % (po, reqpo)))
 */
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_po);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_po);
    __Pyx_GIVEREF(__pyx_v_po);
    __Pyx_INCREF(__pyx_v_reqpo);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_reqpo);
    __Pyx_GIVEREF(__pyx_v_reqpo);
    __pyx_t_11 = PyObject_Call(__pyx_v__common_sourcerpm, __pyx_t_4, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__pyx_t_13) {
 1113:                 self.verbose_logger.log(logginglevels.DEBUG_4,
      /* "/home/david/coding/yum/yum/depsolve.pyx":1113
 * 
 *             if _common_sourcerpm(po, reqpo):
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *                     _('common sourcerpm %s and %s' % (po, reqpo)))
 *                 pkgresults[po] += 20
 */
      __pyx_t_11 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_4 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_1 = PyObject_GetAttr(__pyx_t_11, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 1114:                     _('common sourcerpm %s and %s' % (po, reqpo)))
      /* "/home/david/coding/yum/yum/depsolve.pyx":1114
 *             if _common_sourcerpm(po, reqpo):
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,
 *                     _('common sourcerpm %s and %s' % (po, reqpo)))             # <<<<<<<<<<<<<<
 *                 pkgresults[po] += 20
 *             if reqpo:
 */
      __pyx_t_11 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_v_po);
      PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_po);
      __Pyx_GIVEREF(__pyx_v_po);
      __Pyx_INCREF(__pyx_v_reqpo);
      PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_reqpo);
      __Pyx_GIVEREF(__pyx_v_reqpo);
      __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_76), __pyx_t_12); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(((PyObject *)__pyx_t_10));
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_12);
      PyTuple_SET_ITEM(__pyx_t_12, 0, ((PyObject *)__pyx_t_10));
      __Pyx_GIVEREF(((PyObject *)__pyx_t_10));
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_t_11, __pyx_t_12, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_12);
      PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __pyx_t_1 = 0;
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_t_4, __pyx_t_12, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 1115:                 pkgresults[po] += 20
      /* "/home/david/coding/yum/yum/depsolve.pyx":1115
 *                 self.verbose_logger.log(logginglevels.DEBUG_4,
 *                     _('common sourcerpm %s and %s' % (po, reqpo)))
 *                 pkgresults[po] += 20             # <<<<<<<<<<<<<<
 *             if reqpo:
 *                 cpl = _common_prefix_len(po.name, reqpo.name)
 */
      __pyx_t_10 = PyObject_GetItem(__pyx_v_pkgresults, __pyx_v_po); if (!__pyx_t_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_int_20); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (PyObject_SetItem(__pyx_v_pkgresults, __pyx_v_po, __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L25;
    }
    __pyx_L25:;
 1116:             if reqpo:
    /* "/home/david/coding/yum/yum/depsolve.pyx":1116
 *                     _('common sourcerpm %s and %s' % (po, reqpo)))
 *                 pkgresults[po] += 20
 *             if reqpo:             # <<<<<<<<<<<<<<
 *                 cpl = _common_prefix_len(po.name, reqpo.name)
 *                 if cpl > 2:
 */
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_reqpo); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (__pyx_t_13) {
 1117:                 cpl = _common_prefix_len(po.name, reqpo.name)
      /* "/home/david/coding/yum/yum/depsolve.pyx":1117
 *                 pkgresults[po] += 20
 *             if reqpo:
 *                 cpl = _common_prefix_len(po.name, reqpo.name)             # <<<<<<<<<<<<<<
 *                 if cpl > 2:
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 */
      __pyx_t_12 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__name); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_10 = PyObject_GetAttr(__pyx_v_reqpo, __pyx_n_s__name); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_12);
      __Pyx_GIVEREF(__pyx_t_12);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __pyx_t_12 = 0;
      __pyx_t_10 = 0;
      __pyx_t_10 = PyObject_Call(__pyx_v__common_prefix_len, __pyx_t_4, NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_v_cpl);
      __pyx_v_cpl = __pyx_t_10;
      __pyx_t_10 = 0;
 1118:                 if cpl > 2:
      /* "/home/david/coding/yum/yum/depsolve.pyx":1118
 *             if reqpo:
 *                 cpl = _common_prefix_len(po.name, reqpo.name)
 *                 if cpl > 2:             # <<<<<<<<<<<<<<
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 *                         _('common prefix of %s between %s and %s' % (cpl, po, reqpo)))
 */
      __pyx_t_10 = PyObject_RichCompare(__pyx_v_cpl, __pyx_int_2, Py_GT); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_13) {
 1119:                     self.verbose_logger.log(logginglevels.DEBUG_4,
        /* "/home/david/coding/yum/yum/depsolve.pyx":1119
 *                 cpl = _common_prefix_len(po.name, reqpo.name)
 *                 if cpl > 2:
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *                         _('common prefix of %s between %s and %s' % (cpl, po, reqpo)))
 * 
 */
        __pyx_t_10 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_4 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_12 = PyObject_GetAttr(__pyx_t_10, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 1120:                         _('common prefix of %s between %s and %s' % (cpl, po, reqpo)))
        /* "/home/david/coding/yum/yum/depsolve.pyx":1120
 *                 if cpl > 2:
 *                     self.verbose_logger.log(logginglevels.DEBUG_4,
 *                         _('common prefix of %s between %s and %s' % (cpl, po, reqpo)))             # <<<<<<<<<<<<<<
 * 
 *                     pkgresults[po] += cpl*2
 */
        __pyx_t_10 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_cpl);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_cpl);
        __Pyx_GIVEREF(__pyx_v_cpl);
        __Pyx_INCREF(__pyx_v_po);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_po);
        __Pyx_GIVEREF(__pyx_v_po);
        __Pyx_INCREF(__pyx_v_reqpo);
        PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_reqpo);
        __Pyx_GIVEREF(__pyx_v_reqpo);
        __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_77), __pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(((PyObject *)__pyx_t_11));
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_11));
        __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
        __pyx_t_11 = 0;
        __pyx_t_11 = PyObject_Call(__pyx_t_10, __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_12);
        __Pyx_GIVEREF(__pyx_t_12);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_11);
        __Pyx_GIVEREF(__pyx_t_11);
        __pyx_t_12 = 0;
        __pyx_t_11 = 0;
        __pyx_t_11 = PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 1121: 
 1122:                     pkgresults[po] += cpl*2
        /* "/home/david/coding/yum/yum/depsolve.pyx":1122
 *                         _('common prefix of %s between %s and %s' % (cpl, po, reqpo)))
 * 
 *                     pkgresults[po] += cpl*2             # <<<<<<<<<<<<<<
 * 
 *             pkgresults[po] += (len(po.name)*-1)
 */
        __pyx_t_11 = PyNumber_Multiply(__pyx_v_cpl, __pyx_int_2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_1 = PyObject_GetItem(__pyx_v_pkgresults, __pyx_v_po); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (PyObject_SetItem(__pyx_v_pkgresults, __pyx_v_po, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L27;
      }
      __pyx_L27:;
      goto __pyx_L26;
    }
    __pyx_L26:;
 1123: 
 1124:             pkgresults[po] += (len(po.name)*-1)
    /* "/home/david/coding/yum/yum/depsolve.pyx":1124
 *                     pkgresults[po] += cpl*2
 * 
 *             pkgresults[po] += (len(po.name)*-1)             # <<<<<<<<<<<<<<
 * 
 *         bestorder = sorted(pkgresults.items(), key=itemgetter(1), reverse=True)
 */
    __pyx_t_4 = PyObject_GetAttr(__pyx_v_po, __pyx_n_s__name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyInt_FromSsize_t((__pyx_t_8 * -1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyObject_GetItem(__pyx_v_pkgresults, __pyx_v_po); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (PyObject_SetItem(__pyx_v_pkgresults, __pyx_v_po, __pyx_t_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 1125: 
 1126:         bestorder = sorted(pkgresults.items(), key=itemgetter(1), reverse=True)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1126
 *             pkgresults[po] += (len(po.name)*-1)
 * 
 *         bestorder = sorted(pkgresults.items(), key=itemgetter(1), reverse=True)             # <<<<<<<<<<<<<<
 *         self.verbose_logger.log(logginglevels.DEBUG_4,
 *                 _('Best Order: %s' % str(bestorder)))
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_pkgresults, __pyx_n_s__items); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_11);
  __pyx_t_11 = 0;
  __pyx_t_11 = PyDict_New(); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_11));
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__itemgetter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  __pyx_t_12 = PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_11, ((PyObject *)__pyx_n_s__key), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  if (PyDict_SetItem(__pyx_t_11, ((PyObject *)__pyx_n_s__reverse), __pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = PyEval_CallObjectWithKeywords(__pyx_builtin_sorted, __pyx_t_3, ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_v_bestorder);
  __pyx_v_bestorder = __pyx_t_12;
  __pyx_t_12 = 0;
 1127:         self.verbose_logger.log(logginglevels.DEBUG_4,
  /* "/home/david/coding/yum/yum/depsolve.pyx":1127
 * 
 *         bestorder = sorted(pkgresults.items(), key=itemgetter(1), reverse=True)
 *         self.verbose_logger.log(logginglevels.DEBUG_4,             # <<<<<<<<<<<<<<
 *                 _('Best Order: %s' % str(bestorder)))
 * 
 */
  __pyx_t_12 = PyObject_GetAttr(__pyx_cur_scope->__pyx_v_self, __pyx_n_s__verbose_logger); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__log); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s__logginglevels); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_3 = PyObject_GetAttr(__pyx_t_12, __pyx_n_s__DEBUG_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 1128:                 _('Best Order: %s' % str(bestorder)))
  /* "/home/david/coding/yum/yum/depsolve.pyx":1128
 *         bestorder = sorted(pkgresults.items(), key=itemgetter(1), reverse=True)
 *         self.verbose_logger.log(logginglevels.DEBUG_4,
 *                 _('Best Order: %s' % str(bestorder)))             # <<<<<<<<<<<<<<
 * 
 *         return bestorder
 */
  __pyx_t_12 = __Pyx_GetName(__pyx_m, __pyx_n_s___); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_bestorder);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_bestorder);
  __Pyx_GIVEREF(__pyx_v_bestorder);
  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)&PyString_Type)), __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_78), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_t_4));
  __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_12, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_Call(__pyx_t_11, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1129: 
 1130:         return bestorder
  /* "/home/david/coding/yum/yum/depsolve.pyx":1130
 *                 _('Best Order: %s' % str(bestorder)))
 * 
 *         return bestorder             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_bestorder);
  __pyx_r = __pyx_v_bestorder;
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("yum.depsolve.Depsolve._compare_providers");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v__common_prefix_len);
  __Pyx_DECREF(__pyx_v__common_sourcerpm);
  __Pyx_DECREF(__pyx_v__compare_arch_distance);
  __Pyx_DECREF(__pyx_v_pkgresults);
  __Pyx_DECREF(__pyx_v_ipkgresults);
  __Pyx_DECREF(__pyx_v_pkg);
  __Pyx_DECREF(__pyx_v_rpmdbpkgs);
  __Pyx_DECREF(__pyx_v_newest);
  __Pyx_DECREF(__pyx_v_po);
  __Pyx_DECREF(__pyx_v_nextpo);
  __Pyx_DECREF(__pyx_v_obsoleted);
  __Pyx_DECREF(__pyx_v_obs);
  __Pyx_DECREF(__pyx_v_arches);
  __Pyx_DECREF(__pyx_v_thisarch);
  __Pyx_DECREF(__pyx_v_res);
  __Pyx_DECREF(__pyx_v_cpl);
  __Pyx_DECREF(__pyx_v_bestorder);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_self);
  __Pyx_DECREF(__pyx_v_pkgs);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1131: 
 1132: 
 1133: 
 1134: 
 1135: class DepCheck(object):
  /* "/home/david/coding/yum/yum/depsolve.pyx":1135
 * 
 * 
 * class DepCheck(object):             # <<<<<<<<<<<<<<
 *     """object that YumDepsolver uses to see what things are needed to close
 *        the transaction set. attributes: requires, conflicts are a list of
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  if (PyDict_SetItemString(((PyObject *)__pyx_t_3), "__doc__", ((PyObject *)__pyx_kp_s_86)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_CreateClass(__pyx_t_5, ((PyObject *)__pyx_t_3), __pyx_n_s__DepCheck, "yum.depsolve"); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1136:     """object that YumDepsolver uses to see what things are needed to close
 1137:        the transaction set. attributes: requires, conflicts are a list of
 1138:        requires are conflicts in the current transaction set. Each item in the
 1139:        lists are a requires or conflicts object"""
 1140:     def __init__(self):
/* "/home/david/coding/yum/yum/depsolve.pyx":1140
 *        requires are conflicts in the current transaction set. Each item in the
 *        lists are a requires or conflicts object"""
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.requires = []
 *         self.conflicts = []
 */

static PyObject *__pyx_pf_3yum_8depsolve_8DepCheck___init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8DepCheck___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_3yum_8depsolve_8DepCheck___init__, METH_O, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8DepCheck___init__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;

  /* "/home/david/coding/yum/yum/depsolve.pyx":1140
 *        requires are conflicts in the current transaction set. Each item in the
 *        lists are a requires or conflicts object"""
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self.requires = []
 *         self.conflicts = []
 */
  __pyx_t_5 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8DepCheck___init__, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyMethod_New(__pyx_t_5, 0, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_t_2, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1141:         self.requires = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":1141
 *        lists are a requires or conflicts object"""
 *     def __init__(self):
 *         self.requires = []             # <<<<<<<<<<<<<<
 *         self.conflicts = []
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__requires, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 1142:         self.conflicts = []
  /* "/home/david/coding/yum/yum/depsolve.pyx":1142
 *     def __init__(self):
 *         self.requires = []
 *         self.conflicts = []             # <<<<<<<<<<<<<<
 * 
 *     def addRequires(self, po, req_tuple_list):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__conflicts, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("yum.depsolve.DepCheck.__init__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1143: 
 1144:     def addRequires(self, po, req_tuple_list):
/* "/home/david/coding/yum/yum/depsolve.pyx":1144
 *         self.conflicts = []
 * 
 *     def addRequires(self, po, req_tuple_list):             # <<<<<<<<<<<<<<
 *         # fixme - do checking for duplicates or additions in here to zip things along
 *         reqobj = Requires(po, req_tuple_list)
 */

static PyObject *__pyx_pf_3yum_8depsolve_8DepCheck_addRequires(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8DepCheck_addRequires = {__Pyx_NAMESTR("addRequires"), (PyCFunction)__pyx_pf_3yum_8depsolve_8DepCheck_addRequires, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8DepCheck_addRequires(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_po = 0;
  PyObject *__pyx_v_req_tuple_list = 0;
  PyObject *__pyx_v_reqobj;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__po,&__pyx_n_s__req_tuple_list,0};
  __Pyx_RefNannySetupContext("addRequires");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__po);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("addRequires", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__req_tuple_list);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("addRequires", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "addRequires") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_po = values[1];
    __pyx_v_req_tuple_list = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_po = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_req_tuple_list = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("addRequires", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.DepCheck.addRequires");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_reqobj = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":1144
 *         self.conflicts = []
 * 
 *     def addRequires(self, po, req_tuple_list):             # <<<<<<<<<<<<<<
 *         # fixme - do checking for duplicates or additions in here to zip things along
 *         reqobj = Requires(po, req_tuple_list)
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8DepCheck_addRequires, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyMethod_New(__pyx_t_1, 0, __pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_2, __pyx_n_s__addRequires, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1145:         # fixme - do checking for duplicates or additions in here to zip things along
 1146:         reqobj = Requires(po, req_tuple_list)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1146
 *     def addRequires(self, po, req_tuple_list):
 *         # fixme - do checking for duplicates or additions in here to zip things along
 *         reqobj = Requires(po, req_tuple_list)             # <<<<<<<<<<<<<<
 *         self.requires.append(reqobj)
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Requires); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_po);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_po);
  __Pyx_GIVEREF(__pyx_v_po);
  __Pyx_INCREF(__pyx_v_req_tuple_list);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_req_tuple_list);
  __Pyx_GIVEREF(__pyx_v_req_tuple_list);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_reqobj);
  __pyx_v_reqobj = __pyx_t_3;
  __pyx_t_3 = 0;
 1147:         self.requires.append(reqobj)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1147
 *         # fixme - do checking for duplicates or additions in here to zip things along
 *         reqobj = Requires(po, req_tuple_list)
 *         self.requires.append(reqobj)             # <<<<<<<<<<<<<<
 * 
 *     def addConflicts(self, conflict_po_list, conflict_item):
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__requires); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_reqobj); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.DepCheck.addRequires");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_reqobj);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1148: 
 1149:     def addConflicts(self, conflict_po_list, conflict_item):
/* "/home/david/coding/yum/yum/depsolve.pyx":1149
 *         self.requires.append(reqobj)
 * 
 *     def addConflicts(self, conflict_po_list, conflict_item):             # <<<<<<<<<<<<<<
 *         confobj = Conflicts(conflict_po_list, conflict_item)
 *         self.conflicts.append(confobj)
 */

static PyObject *__pyx_pf_3yum_8depsolve_8DepCheck_addConflicts(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8DepCheck_addConflicts = {__Pyx_NAMESTR("addConflicts"), (PyCFunction)__pyx_pf_3yum_8depsolve_8DepCheck_addConflicts, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8DepCheck_addConflicts(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_conflict_po_list = 0;
  PyObject *__pyx_v_conflict_item = 0;
  PyObject *__pyx_v_confobj;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__conflict_po_list,&__pyx_n_s__conflict_item,0};
  __Pyx_RefNannySetupContext("addConflicts");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__conflict_po_list);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("addConflicts", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__conflict_item);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("addConflicts", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "addConflicts") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_conflict_po_list = values[1];
    __pyx_v_conflict_item = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_conflict_po_list = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_conflict_item = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("addConflicts", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.DepCheck.addConflicts");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_v_confobj = Py_None; __Pyx_INCREF(Py_None);

  /* "/home/david/coding/yum/yum/depsolve.pyx":1149
 *         self.requires.append(reqobj)
 * 
 *     def addConflicts(self, conflict_po_list, conflict_item):             # <<<<<<<<<<<<<<
 *         confobj = Conflicts(conflict_po_list, conflict_item)
 *         self.conflicts.append(confobj)
 */
  __pyx_t_5 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8DepCheck_addConflicts, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyMethod_New(__pyx_t_5, 0, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_t_2, __pyx_n_s__addConflicts, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__DepCheck, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 1150:         confobj = Conflicts(conflict_po_list, conflict_item)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1150
 * 
 *     def addConflicts(self, conflict_po_list, conflict_item):
 *         confobj = Conflicts(conflict_po_list, conflict_item)             # <<<<<<<<<<<<<<
 *         self.conflicts.append(confobj)
 * 
 */
  __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__Conflicts); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_conflict_po_list);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_conflict_po_list);
  __Pyx_GIVEREF(__pyx_v_conflict_po_list);
  __Pyx_INCREF(__pyx_v_conflict_item);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_conflict_item);
  __Pyx_GIVEREF(__pyx_v_conflict_item);
  __pyx_t_3 = PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_v_confobj);
  __pyx_v_confobj = __pyx_t_3;
  __pyx_t_3 = 0;
 1151:         self.conflicts.append(confobj)
  /* "/home/david/coding/yum/yum/depsolve.pyx":1151
 *     def addConflicts(self, conflict_po_list, conflict_item):
 *         confobj = Conflicts(conflict_po_list, conflict_item)
 *         self.conflicts.append(confobj)             # <<<<<<<<<<<<<<
 * 
 * class Requires(object):
 */
  __pyx_t_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s__conflicts); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_v_confobj); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("yum.depsolve.DepCheck.addConflicts");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF(__pyx_v_confobj);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1152: 
 1153: class Requires(object):
  /* "/home/david/coding/yum/yum/depsolve.pyx":1153
 *         self.conflicts.append(confobj)
 * 
 * class Requires(object):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  if (PyDict_SetItemString(((PyObject *)__pyx_t_3), "__doc__", ((PyObject *)__pyx_kp_s_87)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_CreateClass(__pyx_t_2, ((PyObject *)__pyx_t_3), __pyx_n_s__Requires, "yum.depsolve"); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1154: 
 1155:     """
 1156:     A pure data class for holding a package and the list of things it
 1157:     requires.
 1158:     """
 1159: 
 1160:     def __init__(self, pkg,requires):
/* "/home/david/coding/yum/yum/depsolve.pyx":1160
 *     """
 * 
 *     def __init__(self, pkg,requires):             # <<<<<<<<<<<<<<
 *         self.pkg = pkg # po of requiring pkg
 *         self.requires = requires # list of things it requires that are un-closed in the ts
 */

static PyObject *__pyx_pf_3yum_8depsolve_8Requires___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_8Requires___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_3yum_8depsolve_8Requires___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_8Requires___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pkg = 0;
  PyObject *__pyx_v_requires = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__pkg,&__pyx_n_s__requires,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pkg);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__requires);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_pkg = values[1];
    __pyx_v_requires = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_pkg = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_requires = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Requires.__init__");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":1160
 *     """
 * 
 *     def __init__(self, pkg,requires):             # <<<<<<<<<<<<<<
 *         self.pkg = pkg # po of requiring pkg
 *         self.requires = requires # list of things it requires that are un-closed in the ts
 */
  __pyx_t_2 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_8Requires___init__, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyMethod_New(__pyx_t_2, 0, __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_t_1, __pyx_n_s____init__, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Requires, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 1161:         self.pkg = pkg # po of requiring pkg
  /* "/home/david/coding/yum/yum/depsolve.pyx":1161
 * 
 *     def __init__(self, pkg,requires):
 *         self.pkg = pkg # po of requiring pkg             # <<<<<<<<<<<<<<
 *         self.requires = requires # list of things it requires that are un-closed in the ts
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__pkg, __pyx_v_pkg) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 1162:         self.requires = requires # list of things it requires that are un-closed in the ts
  /* "/home/david/coding/yum/yum/depsolve.pyx":1162
 *     def __init__(self, pkg,requires):
 *         self.pkg = pkg # po of requiring pkg
 *         self.requires = requires # list of things it requires that are un-closed in the ts             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__requires, __pyx_v_requires) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("yum.depsolve.Requires.__init__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 1163: 
 1164: 
 1165: class Conflicts(object):
  /* "/home/david/coding/yum/yum/depsolve.pyx":1165
 * 
 * 
 * class Conflicts(object):             # <<<<<<<<<<<<<<
 * 
 *     """
 */
  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_builtin_object);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_builtin_object);
  __Pyx_GIVEREF(__pyx_builtin_object);
  if (PyDict_SetItemString(((PyObject *)__pyx_t_3), "__doc__", ((PyObject *)__pyx_kp_s_88)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_5 = __Pyx_CreateClass(__pyx_t_1, ((PyObject *)__pyx_t_3), __pyx_n_s__Conflicts, "yum.depsolve"); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1166: 
 1167:     """
 1168:     A pure data class for holding a package and the list of things it
 1169:     conflicts.
 1170:     """
 1171: 
 1172:     def __init__(self, pkglist, conflict):
/* "/home/david/coding/yum/yum/depsolve.pyx":1172
 *     """
 * 
 *     def __init__(self, pkglist, conflict):             # <<<<<<<<<<<<<<
 *         self.pkglist = pkglist # list of conflicting package objects
 *         self.conflict = conflict # what the conflict was between them
 */

static PyObject *__pyx_pf_3yum_8depsolve_9Conflicts___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_3yum_8depsolve_9Conflicts___init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pf_3yum_8depsolve_9Conflicts___init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
static PyObject *__pyx_pf_3yum_8depsolve_9Conflicts___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_pkglist = 0;
  PyObject *__pyx_v_conflict = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__pkglist,&__pyx_n_s__conflict,0};
  __Pyx_RefNannySetupContext("__init__");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[3] = {0,0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      case  0: break;
      default: goto __pyx_L5_argtuple_error;
    }
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      case  0:
      values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__self);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__pkglist);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      case  2:
      values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__conflict);
      if (likely(values[2])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    }
    if (unlikely(kw_args > 0)) {
      if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_self = values[0];
    __pyx_v_pkglist = values[1];
    __pyx_v_conflict = values[2];
  } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_pkglist = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_conflict = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("yum.depsolve.Conflicts.__init__");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;

  /* "/home/david/coding/yum/yum/depsolve.pyx":1172
 *     """
 * 
 *     def __init__(self, pkglist, conflict):             # <<<<<<<<<<<<<<
 *         self.pkglist = pkglist # list of conflicting package objects
 *         self.conflict = conflict # what the conflict was between them
 */
  __pyx_t_1 = PyCFunction_New(&__pyx_mdef_3yum_8depsolve_9Conflicts___init__, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyMethod_New(__pyx_t_1, 0, __pyx_t_5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyObject_SetAttr(__pyx_t_5, __pyx_n_s____init__, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s__Conflicts, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 1173:         self.pkglist = pkglist # list of conflicting package objects
  /* "/home/david/coding/yum/yum/depsolve.pyx":1173
 * 
 *     def __init__(self, pkglist, conflict):
 *         self.pkglist = pkglist # list of conflicting package objects             # <<<<<<<<<<<<<<
 *         self.conflict = conflict # what the conflict was between them
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__pkglist, __pyx_v_pkglist) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 1174:         self.conflict = conflict # what the conflict was between them
  /* "/home/david/coding/yum/yum/depsolve.pyx":1174
 *     def __init__(self, pkglist, conflict):
 *         self.pkglist = pkglist # list of conflicting package objects
 *         self.conflict = conflict # what the conflict was between them             # <<<<<<<<<<<<<<
 */
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_s__conflict, __pyx_v_conflict) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("yum.depsolve.Conflicts.__init__");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}